#!/bin/bash lock_file=/tmp/watch-calendars.lock if [ $# -eq 0 ]; then if [ -r "${lock_file}" ] \ && kill -0 "$(cat "${lock_file}")"; then exit fi echo $$ >"${lock_file}" trap 'rm "${lock_file:?}"' EXIT find ~/.local/share/khal/calendars \ -mindepth 1 \ -maxdepth 1 \ -type d \ | parallel -j0 "$0" exit $? fi while [ -d "$1" ]; do inotifywait --exclude .git -r -e CREATE,MOVED_TO,DELETE -t 30 "$1" git -C "$1" add -A git -C "$1" commit -m'update by '"$(whoami)"'@'"$(uname -n)"' on '"$(date)" git -C "$1" pull --rebase git -C "$1" push done