diff -Nru grive2-0.5.2+git20210515~webupd8~hirsute0/debian/changelog grive2-0.5.2+git20210531~webupd8~hirsute1/debian/changelog --- grive2-0.5.2+git20210515~webupd8~hirsute0/debian/changelog 2021-05-15 07:54:39.000000000 +0000 +++ grive2-0.5.2+git20210531~webupd8~hirsute1/debian/changelog 2021-05-31 10:50:04.000000000 +0000 @@ -1,10 +1,8 @@ -grive2 (0.5.2+git20210515~webupd8~hirsute0) hirsute; urgency=medium +grive2 (0.5.2+git20210531~webupd8~hirsute1) hirsute; urgency=medium - * Newer dev version - * Add systemd unit files and helper script for automatic syncs - * Add possibility to change client id and secret and save it between runs + * New git pull - -- Alin Andrei Sat, 15 May 2021 10:31:16 +0200 + -- Alin Andrei Mon, 31 May 2021 13:37:21 +0200 grive2 (0.5.2+git20210315) unstable; urgency=medium diff -Nru grive2-0.5.2+git20210515~webupd8~hirsute0/README.md grive2-0.5.2+git20210531~webupd8~hirsute1/README.md --- grive2-0.5.2+git20210515~webupd8~hirsute0/README.md 2021-05-15 07:30:04.000000000 +0000 +++ grive2-0.5.2+git20210531~webupd8~hirsute1/README.md 2021-05-31 10:47:10.000000000 +0000 @@ -90,15 +90,18 @@ ```bash # 'google-drive' is the name of your Google Drive folder in your $HOME directory -systemctl --user enable grive-timer@$(systemd-escape google-drive).timer -systemctl --user start grive-timer@$(systemd-escape google-drive).timer -systemctl --user enable grive-changes@$(systemd-escape google-drive).service -systemctl --user start grive-changes@$(systemd-escape google-drive).service +systemctl --user enable grive@$(systemd-escape google-drive).service +systemctl --user start grive@$(systemd-escape google-drive).service ``` -You can enable and start these two units for multiple folders in your `$HOME` +You can enable and start this unit for multiple folders in your `$HOME` directory if you need to sync with multiple google accounts. +You can also only enable the time based syncing or the changes based syncing +by only directly enabling and starting the corresponding unit: +`grive-changes@$(systemd-escape google-drive).service` or +`grive-timer@$(systemd-escape google-drive).timer`. + ### Shared files Files and folders which are shared with you don't automatically show up in diff -Nru grive2-0.5.2+git20210515~webupd8~hirsute0/systemd/CMakeLists.txt grive2-0.5.2+git20210531~webupd8~hirsute1/systemd/CMakeLists.txt --- grive2-0.5.2+git20210515~webupd8~hirsute0/systemd/CMakeLists.txt 2021-05-15 07:30:04.000000000 +0000 +++ grive2-0.5.2+git20210531~webupd8~hirsute1/systemd/CMakeLists.txt 2021-05-31 10:47:10.000000000 +0000 @@ -1,10 +1,11 @@ -SET(GRIVE_SYNC_SH_BINARY "${CMAKE_INSTALL_PREFIX}/lib/grive/grive-sync.sh") +SET(GRIVE_SYNC_SH_BINARY "${CMAKE_INSTALL_FULL_LIBEXECDIR}/grive/grive-sync.sh") CONFIGURE_FILE(grive-changes@.service.in grive-changes@.service @ONLY) CONFIGURE_FILE(grive-timer@.service.in grive-timer@.service @ONLY) install( FILES + grive@.service ${CMAKE_BINARY_DIR}/systemd/grive-changes@.service ${CMAKE_BINARY_DIR}/systemd/grive-timer@.service DESTINATION @@ -22,5 +23,5 @@ PROGRAMS grive-sync.sh DESTINATION - lib/grive -) \ No newline at end of file + ${CMAKE_INSTALL_FULL_LIBDIR}/grive +) diff -Nru grive2-0.5.2+git20210515~webupd8~hirsute0/systemd/grive@.service grive2-0.5.2+git20210531~webupd8~hirsute1/systemd/grive@.service --- grive2-0.5.2+git20210515~webupd8~hirsute0/systemd/grive@.service 1970-01-01 00:00:00.000000000 +0000 +++ grive2-0.5.2+git20210531~webupd8~hirsute1/systemd/grive@.service 2021-05-31 10:47:10.000000000 +0000 @@ -0,0 +1,13 @@ +[Unit] +Description=Google drive sync (main) +Requires=grive-timer@%i.timer grive-changes@%i.service + +# dummy service +[Service] +Type=oneshot +ExecStart=/bin/true +# This service shall be considered active after start +RemainAfterExit=yes + +[Install] +WantedBy=default.target diff -Nru grive2-0.5.2+git20210515~webupd8~hirsute0/systemd/grive-sync.sh grive2-0.5.2+git20210531~webupd8~hirsute1/systemd/grive-sync.sh --- grive2-0.5.2+git20210515~webupd8~hirsute0/systemd/grive-sync.sh 2021-05-15 07:30:04.000000000 +0000 +++ grive2-0.5.2+git20210531~webupd8~hirsute1/systemd/grive-sync.sh 2021-05-31 10:47:10.000000000 +0000 @@ -62,39 +62,36 @@ sync_directory() { _directory="${1}" + + reset_timer_and_exit() { echo "Retriggered google drive sync ('${_directory}')" && touch -m $LOCKFILE && exit; } + + exlock_now || reset_timer_and_exit + if ping -c1 -W1 -q accounts.google.com >/dev/null 2>&1; then true # pass else - echo "Google drive server not reachable..." + echo "Google drive server not reachable, NOT syncing..." + unlock exit 0 fi - reset_timer_and_exit() { echo "Retriggered google drive sync" && touch -m "$LOCKFILE" && exit; } - - exlock_now || reset_timer_and_exit - TIME_AT_START=0 TIME_AT_END=1 while [[ "${TIME_AT_START}" -lt "${TIME_AT_END}" ]]; do - echo "Syncing "${_directory}"..." + echo "Syncing '${_directory}'..." TIME_AT_START="$(stat -c %Y "$LOCKFILE")" - # exclude symlinks from sync - cat "${_directory}"/.griveignore 2>/dev/null | sed '/#LINKS-EDIT_BEFORE_THIS$/,$d' > /tmp/.griveignore.base - cp /tmp/.griveignore.base "${_directory}"/.griveignore - rm /tmp/.griveignore.base - echo "#LINKS-EDIT_BEFORE_THIS" >> "${_directory}"/.griveignore - ( cd "${_directory}" && find . -type l | sed 's/^.\///g'; ) >> "${_directory}"/.griveignore grive -p "${_directory}" 2>&1 | grep -v -E "^Reading local directories$|^Reading remote server file list$|^Synchronizing files$|^Finished!$" TIME_AT_END="$(stat -c %Y "$LOCKFILE")" - echo "Sync of "${_directory}" done." + echo "Sync of '${_directory}' done." done # always exit ok, so that we never go into a wrong systemd state + unlock exit 0 } -### LISTEN TO DIRECTORY CHANGES ### +### LISTEN TO CHANGES IN DIRECTORY ### listen_directory() { @@ -102,7 +99,7 @@ type inotifywait >/dev/null 2>&1 || { echo >&2 "I require inotifywait but it's not installed. Aborting."; exit 1; } - echo "Listening for changes in ~/"${_directory}"" + echo "Listening for changes in '${_directory}'" while true #run indefinitely do diff -Nru grive2-0.5.2+git20210515~webupd8~hirsute0/systemd/grive-timer@.service.in grive2-0.5.2+git20210531~webupd8~hirsute1/systemd/grive-timer@.service.in --- grive2-0.5.2+git20210515~webupd8~hirsute0/systemd/grive-timer@.service.in 2021-05-15 07:30:04.000000000 +0000 +++ grive2-0.5.2+git20210531~webupd8~hirsute1/systemd/grive-timer@.service.in 2021-05-31 10:47:10.000000000 +0000 @@ -1,5 +1,5 @@ [Unit] -Description=Google drive sync +Description=Google drive sync (executed by timer unit) After=network-online.target [Service]