diff options
author | Soispha <soispha@vhack.eu> | 2023-10-19 10:08:22 +0200 |
---|---|---|
committer | Soispha <soispha@vhack.eu> | 2023-10-19 10:08:22 +0200 |
commit | 74e1851a5868e69408758b250a987cdf48abb236 (patch) | |
tree | f9b3c274fc03d48f1825bd5056f060dcbc4d6461 /hm/soispha/conf/taskwarrior/hooks/scripts | |
parent | fix(hm/conf/taskwarrior/theme): Make the lowest priority readable (diff) | |
download | nixos-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')
-rwxr-xr-x | hm/soispha/conf/taskwarrior/hooks/scripts/on-add_sync-git-repo.sh | 43 | ||||
-rwxr-xr-x | hm/soispha/conf/taskwarrior/hooks/scripts/on-modify_sync-git-repo.sh | 44 |
2 files changed, 87 insertions, 0 deletions
diff --git a/hm/soispha/conf/taskwarrior/hooks/scripts/on-add_sync-git-repo.sh b/hm/soispha/conf/taskwarrior/hooks/scripts/on-add_sync-git-repo.sh new file mode 100755 index 00000000..b2e65c1d --- /dev/null +++ b/hm/soispha/conf/taskwarrior/hooks/scripts/on-add_sync-git-repo.sh @@ -0,0 +1,43 @@ +#!/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 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 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 |