diff options
| author | Arpit Chakladar <arpitchakladar+git@gmail.com> | 2026-09-02 02:34:32 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar+git@gmail.com> | 2026-09-02 02:34:32 +0530 |
| commit | 0afbd64a18aef6c048fba40d1c1350dbcdc4930a (patch) | |
| tree | 1c7586b81fde88f3c8bdd97fe2eb87b2d0848792 /modules/office/calcurse/hooks | |
| parent | 59df727a1591ac4b47e202926669753731cabc69 (diff) | |
| download | home-manager-config-0afbd64a18aef6c048fba40d1c1350dbcdc4930a.tar.gz home-manager-config-0afbd64a18aef6c048fba40d1c1350dbcdc4930a.zip | |
feat(office/calcurse): added hooks for calcurse-sync
- saving and loading automatically syncs the local with a remote
upstream git repo
Diffstat (limited to 'modules/office/calcurse/hooks')
| -rw-r--r-- | modules/office/calcurse/hooks/post-save | 16 | ||||
| -rw-r--r-- | modules/office/calcurse/hooks/pre-load | 16 |
2 files changed, 32 insertions, 0 deletions
diff --git a/modules/office/calcurse/hooks/post-save b/modules/office/calcurse/hooks/post-save new file mode 100644 index 0000000..5d2ab1d --- /dev/null +++ b/modules/office/calcurse/hooks/post-save @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# Commits and pushes the calcurse data dir after every save. +# +# Hooks hand calcurse's terminal over to whatever they run and calcurse +# waits for them to exit before redrawing, so this backgrounds the actual +# sync instead of blocking the UI on a git push. Output goes to a log +# file rather than stdout/stderr, since hooks aren't meant to be +# interactive. + +log="${XDG_DATA_HOME:-$HOME/.local/share}/calcurse/hooks.log" + +( + printf '[%s] post-save\n' "$(date '+%Y-%m-%d %H:%M:%S')" + calcurse-sync sync +) >>"$log" 2>&1 & +disown diff --git a/modules/office/calcurse/hooks/pre-load b/modules/office/calcurse/hooks/pre-load new file mode 100644 index 0000000..bd87af3 --- /dev/null +++ b/modules/office/calcurse/hooks/pre-load @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# Pulls the latest calcurse data before calcurse reads it, so a fresh +# session (or a ^R reload) starts from wherever you last left off on +# another machine. +# +# Runs synchronously, unlike post-save, since the point is to have +# up-to-date data before it's loaded. Never fails calcurse's startup, +# though: if the pull can't complete (offline, no remote configured +# yet, a conflict), calcurse just opens with whatever's on disk. + +log="${XDG_DATA_HOME:-$HOME/.local/share}/calcurse/hooks.log" + +{ + printf '[%s] pre-load\n' "$(date '+%Y-%m-%d %H:%M:%S')" + calcurse-sync pull +} >>"$log" 2>&1 || true |
