Commit graph

178 commits

Author SHA1 Message Date
Norbert Preining 91aaf91aa6 Reinitialize sync engine after three failed trials (#283)
* After extended suspend, or bad connection, the connection to OD might
go stale - thus no network connection to Microsoft OneDrive Service, skipping sync
and this continues ad infinitum. Change the last action to re-initialize the sync engine.
2018-12-13 07:08:18 +11:00
Norbert Preining 3608dcc4c2 Add very verbose (debug) mode by double -v -v (#279)
* Add very verbose (debug) mode by double -v -v - currently only used for debugging the inotify events
2018-12-08 05:01:22 +11:00
Norbert Preining 06aa42f6d1 better log messages, less noise on temporary timeouts (#275)
* better log messages, less noise on temporary timeouts
2018-12-06 18:05:52 +11:00
abraunegg 0562c52492 Handle short lived files (Issue #273) (PR #274)
* Handle short lived files (Issue #273)
* Update README.md
* Add --disable-notifications to readme
2018-12-06 08:50:46 +09:00
Norbert Preining cc6cbf5ac7 Notification support via libnotify (#270)
* add external sources for (d)notify with README and license statements
* add new logAndNotify function, make building a compile time option
* use logAndNotify and main.d, make timeout message silent
* update documentation for notification support
* add command line switch --disable-notifications
* add build-deps for libnotify in README.md
2018-12-06 06:19:00 +11:00
Norbert Preining b10e641fe9 allow starting offline in monitor mode (#266)
* SyncEngine: allow for multiple calls to init by saving the state
* Factor out syncengine initialization code so that it can be reused
* Don't exit in monitor when started offline
* Always call initSyncEngine during regular syncs, this will call the SyncEngine init routine which caches the state, thus a quasi no-op.
* Add forgotten http.shutdown
2018-12-04 11:15:44 +11:00
abraunegg 29808c905c
Implement --get-O365-drive-id to get correct SharePoint Shared Library (Issue #248) (#260)
* Implement --get-O365-drive-id to return the correct drive_id of a SharePoint Shared Library to use for syncing that repository
2018-12-04 10:59:23 +11:00
Norbert Preining 9817104ca1 continue in monitor mode when sync timed out (#265)
* update handling of connection timeouts in monitor mode & allow application continue rather than exit
2018-12-03 13:41:31 +11:00
Norbert Preining 11138602ed gracefully handle connection errors in monitor mode (#253)
* gracefully handle connection errors, resolve issue #234
2018-11-29 20:48:24 +11:00
abraunegg a26a69ce9f
Change logging to a separate logfile is no longer the default (#239)
* Change '--download' to '--download-only' to align with '--upload-only'
* Enable logging to a separate file only if the '--enable-logging' flag is passed through at client run time
* Implement configuration option for logfile location, if logging is enabled
2018-11-24 07:13:16 +11:00
abraunegg c5ee62efd8
Sync with shared folders/drives for onedrive business (#206)
* Refactor PR104 for latest code base to enable client use with SharePoint libraries
* Implement '--disable-upload-validation' as SharePoint modifies files when uploaded
* Enable '--disable-upload-validation' by default if account type is documentLibrary - as most likely this is a SharePoint repository
2018-11-24 06:26:30 +11:00
abraunegg a6336e70b3
Resolve Key not found: driveType (Issue #152) (#166)
* Add try & catch in the case of a 504 error being generated to upload the file. Currently, if a 504 is generated, it is handled gracefully, but further files to upload are stopped
* Update where ever there is a 404 try block, add a if statement to capture if a 5xx error is returned as well
2018-09-25 05:25:40 +10:00
Marcus Ball 3a4c71d7ee Fix incorrectly nested configDir in X11 systems (Issue #181) (#182)
* Fix incorrectly nested configDir in X11 systems
2018-09-21 05:45:06 +10:00
abraunegg be1cb5e5ab
Update how default path is set when running under systemd (#170)
* Update how default path is set when running under systemd
2018-09-13 08:46:27 +10:00
abraunegg 564a77fb4e
Initial fix to high CPU usage when running in monitor mode (#165)
* Add skilion commit c2cdb24131
* Add skilion commit b702afda50
2018-09-13 08:43:29 +10:00
abraunegg a3f69d4a2e
Resolve systemd/user is not supported on CentOS / RHEL (Issue #131) (#132)
* Resolve systemd/user is not supported on CentOS / RHEL (Issue #131)
2018-08-27 10:35:58 +10:00
abraunegg b98c9386f3
Resolve skipping of symlinks in monitor mode (#125)
* Resolve skipping of symlinks in monitor mode
* Fix up some spelling errors
2018-08-17 08:03:21 +10:00
abraunegg 6a5ab5607a
test for curl exception when checking online status (#117)
* Check for a curl exception when checking the online status of the client at startup
2018-08-14 07:21:11 +10:00
abraunegg 2bb5dce752
Fix --no-remote-delete (#110)
* Original implementation of --no-remote-delete used a cfg value, however this introduced 2 issues - value could be set via a config parameter which was not the intention, but also could be set to a non true value causing application issues. This patch resolves how  --no-remote-delete should have originally been implemented
2018-08-10 07:40:17 +10:00
abraunegg e922a7d85e
Implement Feature Request: Make checkinterval for monitor configurable (Issue #31) (#97)
* Implement Feature: Make checkinterval for monitor configurable
* Update monitor mode processing logic
2018-08-08 05:35:18 +10:00
abraunegg 2e04bf534a
Implement Feature Request: Upload Only Option that does not perform remote delete (Issue #49) (#96)
* Implement Feature Request: Upload Only Option that does not perform remote deletes
2018-08-05 10:43:31 +10:00
Leif Denby c0074638da Add ability to skip symlinks (Issue #87) (#92)
* Add ability to skip symlinks
2018-08-03 06:02:10 +10:00
abraunegg d0209d8dbc
Gracefully handle OneDrive account password change (#73)
* Gracefully handle OneDrive account password change rather than crashing if authorization token is now invalid
2018-07-16 09:58:36 +10:00
abraunegg 54ae6eacad
Update logic --upload-only and --local-first (#71)
* Update the logic handling of --upload-only and --local-first to be more consistent regardless of using --single-directory or not.
2018-07-15 15:22:08 +10:00
abraunegg fed53e8612
Update sync_dir handling (#55)
* Update sync_dir handling to use the absolute path for setting parameter to something other than ~/OneDrive via config file or command line
2018-07-10 05:34:27 +10:00
abraunegg 77ac29acdf Update feature flag
* Update feature flag from 'check-mount' to 'check-for-nomount' as this is what this option does
* Add information into readme file
2018-06-27 06:23:17 +10:00
abraunegg 1cfe137a92 Implement feature request: Detect when sync-folder is missing
* Provide a new switch 'check-mount' which will check for the presence of a hidden file '.nosync' file. If this file is found in the sync dir, then the sync process will shutdown. Refer to #8 for further details.
2018-06-17 08:27:43 +10:00
abraunegg 2827467296 Resolve std.file.FileException when checking logfile path
* Resolve std.file.FileException@std/file.d(2954): /var/log/onedrive/: Permission denied when there is no permission to create the directory on application startup
2018-05-16 19:19:43 +10:00
Matthias C. M. Troffaes c863d2c3c9 Fix config folder. 2018-05-16 09:11:50 +01:00
abraunegg bc15d7f77f Display informative message when not using --synchronize
* Prior to all the changes in #314, the client would sync regardless of
options. #314 introduced a flag that must be included if you want to
sync, however there was no feedback if '--synchronize' was not included
and the sync was not occuring. This patch provides that notification &
feedback.
2018-04-24 12:14:36 +10:00
abraunegg 5cb92c01b9 Expand HTTPS debug to include GET JSON responses
* Change debug flag from --debug-http to --debug-https as OneDrive only
uses HTTPS, not HTTP
* Expand --debug-https to print the JSON responses to GET operations.
This is to assist with debugging #334 where a change in the MS API
(https://github.com/OneDrive/onedrive-api-docs/issues/834) no longer
sends 'lastModifiedDateTime' with responses to some GET's. This issue
seems to manefest itself with OneDrive Business accounts currently.
2018-04-15 20:02:39 +10:00
abraunegg 21f4d8e858 Add init.d service file & modify how configDirName is set
* Add init.d service file & helper script to start service
* Change how configDirName is set as XDG_CONFIG_HOME does not exist on
systems where X11 is not present. When using init scripts and using
XDG_CONFIG_HOME, ~ is not expanded thus existing config cannot be found.
Using ~ in --confdir also does not work when running under init.d
2018-04-13 09:33:16 +10:00
abraunegg 091e675d85 Update README.md based on current changes made
* Update readme
* Tweak logging output based on sync options selected
2018-04-12 10:18:18 +10:00
abraunegg f1aa190a91 Add uploadOnly flag and add username to logfile name
* Add specific uploadOnly flag so that the onedrive client only uploads
data from the local directory and does not download changes from
OneDrive
* Change the logfile name to include the username running the onedrive
client
2018-04-07 17:06:57 +10:00
abraunegg dd73ae3c4b OneDrive Client Changes
* Fix 4xx errors including (412 pre-condition)
* Add Logging - log to a file (/var/log/onedrive/onedrive.log)
* Add http(s) debugging as a flag
* Add dont sync when just blindly running the application
* Add individual folder sync - ie ~/OneDrive/blah/ vs. syncing
everything in ~/OneDrive/
* Add sync from local directory first rather than download first then
upload
* Add upload long path check (430 character limitation)
2018-03-14 15:43:40 +11:00
skilion c231b13ad4 Disabled buffering on stdout 2018-02-18 18:24:46 +01:00
skilion 03f746a650 Grammar fix 2018-01-19 17:56:36 +01:00
skilion 96c364c5fc removed tmp instruction 2018-01-02 15:06:20 +01:00
skilion 9bedec0d7c handle moving items between drives 2018-01-01 18:38:08 +01:00
skilion 764975e224 download only option 2017-12-31 17:11:17 +01:00
skilion e3f011b724 write logs on stdout instead of stderr 2017-12-28 15:21:41 +01:00
skilion 35ce743b39 removed exception chaining 2017-12-28 15:03:15 +01:00
skilion 9765b27902 new parameter syncdir 2017-08-01 19:11:50 +02:00
skilion 7fae9c1bef versioning 2017-07-14 11:40:57 +02:00
skilion 4f542800a7 fix bug when using personalized config dir 2017-06-12 17:54:33 +02:00
skilion 8b6c99b0d9 notify deletion in verbose mode 2017-05-28 23:14:37 +02:00
skilion 8360d6508d align message 2017-05-28 22:17:21 +02:00
skilion 691862b18f implement the recommended way to enumerate changes 2017-05-28 20:54:57 +02:00
skilion 3d8daa086d added --print-token 2017-05-28 20:14:50 +02:00
skilion 97a9d53914 refactored selective sync code
fixed bug in selective sync
2017-03-24 22:31:56 +01:00
skilion 6913c87d5c schema upgrade 2016-12-25 19:23:33 +01:00
skilion c91decaa16 added logout cmd line option 2016-08-05 00:12:58 +02:00
skilion 738536736a Refactoring
- unified configs
- logging module
- new cmd line option to change the config dir
2016-08-04 23:43:10 +02:00
skilion 7d700e1a4c ask for the response uri one time only 2016-06-30 12:51:44 +02:00
skilion 09af80d843 create sync_dir if it doesn't exists 2016-06-28 14:21:48 +02:00
skilion 89452985ec workaround for segfault in std.net.curl.Curl.shutdown() on exit 2016-03-07 14:04:08 +01:00
skilion ea970890a2 capability to run as service 2015-11-29 21:12:44 +01:00
skilion 3f40728779 redirect stdout to stderr 2015-10-18 10:12:10 +02:00
skilion 288d1feac1 avoid full inotify restart in the monitor loop 2015-10-10 22:18:33 +02:00
skilion 9b80d99ad4 support for files bigger than 100 MB and resumable uploads 2015-09-28 13:25:25 +02:00
skilion 07f5f1ce78 create config dir if it doesn't exist 2015-09-22 15:26:45 +02:00
skilion 7cfa936db8 changed how config files works 2015-09-22 14:48:18 +02:00
skilion a032ef9671 changed help message 2015-09-22 11:52:57 +02:00
skilion 85cd44cf73 better help message 2015-09-22 11:20:54 +02:00
skilion d2ec6c688f better exception management 2015-09-20 21:21:51 +02:00
skilion a877bad3ad run garbage collection after the synchronization 2015-09-20 14:49:44 +02:00
skilion 74fadfb262 support path with tilde 2015-09-20 14:20:01 +02:00
skilion 2d50e43674 removed path dependency in Item 2015-09-19 15:38:43 +02:00
skilion 10efa036b4 implemented monitor filter 2015-09-18 22:56:09 +02:00
skilion 7126c4fefc implemented filter in sync 2015-09-18 21:42:27 +02:00
skilion 9aa1f221c7 skip filtered files in applyDiifferences 2015-09-17 17:34:58 +02:00
skilion 35c290c4a0 working monitor 2015-09-17 16:28:24 +02:00
skilion 4d230a394c finalizing 2015-09-17 00:16:23 +02:00
skilion f887b29061 sync root folder 2015-09-16 10:29:20 +02:00
skilion ff07f13cd6 command line options 2015-09-14 19:21:06 +02:00
skilion 54e60d4528 real time changes 2015-09-11 18:33:22 +02:00
skilion 9dea1c1448 set the callback earlier 2015-09-02 11:21:19 +02:00
skilion 00d53f648e first commit 2015-09-01 20:47:44 +02:00