From 992cf45dc92b6aba36b47b496dbb0dc443aa200f Mon Sep 17 00:00:00 2001
From: Nitroretro <nitroretro@protonmail.com>
Date: Thu, 19 Dec 2019 22:42:54 +0200
Subject: Use $XDG_{CONFIG,DATA}_HOME in hooks

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
---
 contrib/caldav/hooks/post-sync | 30 +++++++++++++++++++++++-------
 1 file changed, 23 insertions(+), 7 deletions(-)

(limited to 'contrib/caldav/hooks/post-sync')

diff --git a/contrib/caldav/hooks/post-sync b/contrib/caldav/hooks/post-sync
index 372d260..62ebe11 100755
--- a/contrib/caldav/hooks/post-sync
+++ b/contrib/caldav/hooks/post-sync
@@ -8,12 +8,28 @@
 # $XDG_CONFIG_HOME/calcurse/caldav/hooks/ (~/.config/calcurse/caldav/hooks/) or
 # ~/.calcurse/caldav/hooks/ if using ~/.calcurse.
 
-cd "$HOME"/.calcurse/
+data_dir="$HOME/.calcurse"
+config_dir="$HOME/.calcurse"
 
-# If the data directory is under version control, create a Git commit.
-if [ -d .git -a -x "$(which git)" ]; then
-	git add apts conf keys todo
-	if ! git diff-index --quiet --cached HEAD; then
-		git commit -m "Automatic commit by the post-sync hook"
-	fi
+if [ ! -d "$data_dir" ]; then
+	data_dir="${XDG_DATA_HOME:-$HOME/.local/share}/calcurse"
+	config_dir="${XDG_CONFIG_HOME:-$HOME/.config}/calcurse"
 fi
+
+# Do not do anything when synchronizing with a CalDAV server.
+[ -f "$data_dir/caldav/lock" ] && exit
+
+# If the directory is under version control, create a Git commit.
+commit_dir() {
+	cd "$1" >/dev/null 2>&1 || return
+	shift
+	if [ -d .git ] && command -v git >/dev/null; then
+		git add "$@"
+		if ! git diff-index --quiet --cached HEAD; then
+			git commit -m "Automatic commit by the post-save hook"
+		fi
+	fi
+}
+
+commit_dir "$data_dir" apts todo
+commit_dir "$config_dir" conf keys
-- 
cgit v1.2.3-70-g09d2