From e3e18fe16aec7b5ae849275234fbd824e4c83a95 Mon Sep 17 00:00:00 2001 From: Jan Schulz Date: Mon, 3 Dec 2018 21:21:49 +0100 Subject: [PATCH 1/2] Escape folder when calling sync from change listener The old version would pass in an unescaped directory, which then got unescaped by the sync call. In some cases it worked but resulted in foldername wold not matched reality (example: google-drive -> google/drive) and error out when checking if that folder exists. --- systemd/grive-sync.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd/grive-sync.sh b/systemd/grive-sync.sh index 42d6ae8..bb837ba 100755 --- a/systemd/grive-sync.sh +++ b/systemd/grive-sync.sh @@ -107,7 +107,7 @@ listen_directory() { while true #run indefinitely do # Use a different call to not need to change exit into return - inotifywait -q -r -e modify,attrib,close_write,move,create,delete --exclude ".grive_state|.grive" "${_directory}" > /dev/null 2>&1 && ${SCRIPT} sync "${_directory}" + inotifywait -q -r -e modify,attrib,close_write,move,create,delete --exclude ".grive_state|.grive" "${_directory}" > /dev/null 2>&1 && ${SCRIPT} sync $(systemd-escape "${_directory}") #echo ${SCRIPT} "${_directory}" done From f9cad3b635d91059e2b6b7fdf19558411acb6bee Mon Sep 17 00:00:00 2001 From: Jan Schulz Date: Mon, 3 Dec 2018 21:34:10 +0100 Subject: [PATCH 2/2] Update readme how to enable and start systemd units It missed that escaping was essential if you didn't use a all [a-z] foldername... --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d09b292..0e1da4c 100644 --- a/README.md +++ b/README.md @@ -90,10 +90,10 @@ Prepare a Google Drive folder in your $HOME directory with `grive -a`. ```bash # 'google-drive' is the name of your Google Drive folder in your $HOME directory -systemctl --user enable grive-timer@google-drive.timer -systemctl --user start grive-timer@google-drive.timer -systemctl --user enable grive-changes@google-drive.service -systemctl --user start grive-changes@google-drive.service +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 ``` You can enable and start these two units for multiple folders in your `$HOME`