diff options
author | Lukas Fleischer <lfleischer@calcurse.org> | 2016-02-08 08:01:06 +0100 |
---|---|---|
committer | Lukas Fleischer <lfleischer@calcurse.org> | 2016-02-08 08:17:49 +0100 |
commit | 4ab6e75aa906ebf85cf68b5f23be003a7dae9c7a (patch) | |
tree | a316ccbce61e46b7e87860f27651dbf7822e6764 | |
parent | 616c3759a5f28f3f6229af6d5d7ea0f302cbb17c (diff) | |
download | calcurse-4ab6e75aa906ebf85cf68b5f23be003a7dae9c7a.tar.gz calcurse-4ab6e75aa906ebf85cf68b5f23be003a7dae9c7a.zip |
Improve example hooks
The post-save and post-sync hooks now automatically detect whether the
data directory contains a .git/ directory and skip the commit creation
process if it does not.
The post-save hook and the new pre-load hook now also run
calcurse-caldav in the background if that script is available and the
data directory contains a caldav/ directory.
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
-rwxr-xr-x | contrib/caldav/hooks/post-sync | 17 | ||||
-rwxr-xr-x | contrib/hooks/post-save | 29 | ||||
-rwxr-xr-x | contrib/hooks/pre-load | 21 |
3 files changed, 55 insertions, 12 deletions
diff --git a/contrib/caldav/hooks/post-sync b/contrib/caldav/hooks/post-sync index c119ba7..1ac028c 100755 --- a/contrib/caldav/hooks/post-sync +++ b/contrib/caldav/hooks/post-sync @@ -1,12 +1,17 @@ #!/bin/sh # -# Copy this file into ~/.calcurse/caldav/hooks/ and mark it executable to -# automatically commit changes after syncing using Git. +# This is an example hook. If the calcurse data directory contains a Git +# repository, it automatically makes a commit whenever synchronizing with a +# CalDAV server. +# +# In order to install this hook, copy this file to ~/.calcurse/caldav/hooks/. cd "$HOME"/.calcurse/ -git add apts conf keys todo -if ! git diff-index --quiet --cached HEAD; then - git commit -m "Automatic commit by the post-sync hook" +# 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 fi - diff --git a/contrib/hooks/post-save b/contrib/hooks/post-save index 574a721..bb582e2 100755 --- a/contrib/hooks/post-save +++ b/contrib/hooks/post-save @@ -1,14 +1,31 @@ #!/bin/sh # -# Copy this file into ~/.calcurse/hooks/ and mark it executable to -# automatically commit any changes to the calcurse data files using Git. +# This is an example hook. It does two things whenever you save the data files: +# +# 1. Make a commit if the calcurse data directory contains a Git repository. +# 2. Synchronize with a CalDAV server if calcurse-caldav is configured. +# +# In order to install this hook, copy this file to ~/.calcurse/hooks/. cd "$HOME"/.calcurse/ -# Do not make commits when synchronizing with a CalDAV server. +# Do not do anything when synchronizing with a CalDAV server. [ -f caldav/lock ] && exit -git add apts conf keys todo -if ! git diff-index --quiet --cached HEAD; then - git commit -m "Automatic commit by the post-save hook" +# 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-save hook" + fi +fi + +# Optionally run the CalDAV synchronization script in the background. +if [ -d caldav -a -x "$(which calcurse-caldav)" ]; then + ( + date="$(date +'%b %d %H:%M:%S')" + echo "$date Running calcurse-caldav from the post-save hook..." + calcurse-caldav + echo + ) >>caldav/log 2>&1 & fi diff --git a/contrib/hooks/pre-load b/contrib/hooks/pre-load new file mode 100755 index 0000000..c9ab62d --- /dev/null +++ b/contrib/hooks/pre-load @@ -0,0 +1,21 @@ +#!/bin/sh +# +# This is an example hook. It synchronizes calcurse with a CalDAV server before +# loading the data files. +# +# In order to install this hook, copy this file to ~/.calcurse/hooks/. + +cd "$HOME"/.calcurse/ + +# Do not do anything when synchronizing with a CalDAV server. +[ -f caldav/lock ] && exit + +# Run the CalDAV synchronization script in the background. +if [ -d caldav -a -x "$(which calcurse-caldav)" ]; then + ( + date="$(date +'%b %d %H:%M:%S')" + echo "$date Running calcurse-caldav from the pre-load hook..." + calcurse-caldav + echo + ) >>caldav/log 2>&1 & +fi |