about summary refs log tree commit diff stats
path: root/hm/soispha/conf/taskwarrior/hooks/scripts/on-modify_sync-git-repo.sh
diff options
context:
space:
mode:
authorSoispha <soispha@vhack.eu>2023-10-19 10:08:22 +0200
committerSoispha <soispha@vhack.eu>2023-10-19 10:08:22 +0200
commit74e1851a5868e69408758b250a987cdf48abb236 (patch)
treef9b3c274fc03d48f1825bd5056f060dcbc4d6461 /hm/soispha/conf/taskwarrior/hooks/scripts/on-modify_sync-git-repo.sh
parentfix(hm/conf/taskwarrior/theme): Make the lowest priority readable (diff)
downloadnixos-config-74e1851a5868e69408758b250a987cdf48abb236.zip
feat(hm/conf/taskwarrior): Automatically save the task data in a git repo
Diffstat (limited to 'hm/soispha/conf/taskwarrior/hooks/scripts/on-modify_sync-git-repo.sh')
-rwxr-xr-xhm/soispha/conf/taskwarrior/hooks/scripts/on-modify_sync-git-repo.sh44
1 files changed, 44 insertions, 0 deletions
diff --git a/hm/soispha/conf/taskwarrior/hooks/scripts/on-modify_sync-git-repo.sh b/hm/soispha/conf/taskwarrior/hooks/scripts/on-modify_sync-git-repo.sh
new file mode 100755
index 00000000..e2c0abcb
--- /dev/null
+++ b/hm/soispha/conf/taskwarrior/hooks/scripts/on-modify_sync-git-repo.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="1.4.2" . %SHELL_LIBRARY_PATH
+
+# override shell lib output to stdout
+eprint() {
+    # shellcheck disable=SC2317
+    print "$@";
+};
+eprintln() {
+    # shellcheck disable=SC2317
+    println "$@";
+};
+
+enable_hook_dbg() {
+    debug_hooks="$(task _get rc.debug.hooks)";
+    [ "$debug_hooks" ] && [ "$debug_hooks" -ge 1 ] && dbg_enable
+}
+
+update_git_repo() {
+    task_data="$(task _get rc.data.location)";
+    [ "$task_data" ] || die "Taskwarrior should have a location set"
+
+    cd "$task_data" || die "(BUG?): Your data.location path is not accessable"
+
+    [ -d ./.git/ ] || git init
+
+    git add .;
+    git commit --message="chore: Update" --no-gpg-sign;
+}
+
+
+read -r _old_task;
+read -r new_task;
+# We don't change the task, thus immediately return the json
+echo "$new_task";
+
+enable_hook_dbg;
+update_git_repo;
+
+exit 0;
+
+# vim: ft=sh