2
0
mirror of https://github.com/gitwatch/gitwatch synced 2024-11-15 06:12:52 +00:00

Add some more comments

This commit is contained in:
Nevik Rehnel 2013-11-13 10:57:29 +01:00
parent 7788b7cbfd
commit 930d1d1957

View File

@ -38,7 +38,8 @@ SLEEP_TIME=2
DATE_FMT="+%Y-%m-%d %H:%M:%S"
COMMITMSG="Scripted auto-commit on change (%d) by gitwatch.sh"
shelp () { # Print a message about how to use this script
# Print a message about how to use this script
shelp () {
echo "gitwatch - watch file or directory and git commit all changes as they happen"
echo ""
echo "Usage:"
@ -89,10 +90,12 @@ shelp () { # Print a message about how to use this script
echo "and inotifywait, respectively."
}
# print all arguments to stderr
stderr () {
echo $@ >&2
}
# clean up at end of program, killing the remaining sleep process if it still exists
cleanup () {
if [[ -n "$SLEEP_PID" ]] && kill -0 $SLEEP_PID &>/dev/null; then
kill $SLEEP_PID &>/dev/null
@ -100,6 +103,11 @@ cleanup () {
exit 0
}
# Tests for the availability of a command
is_command () {
which "$1" &>/dev/null
}
###############################################################################
while getopts b:d:hm:p:r:s: option # Process command line options
@ -121,10 +129,6 @@ if [ $# -ne 1 ]; then # If no command line arguments are left (that's bad: no ta
exit # and exit
fi
is_command () { # Tests for the availability of a command
which "$1" &>/dev/null
}
# if custom bin names are given for git or inotifywait, use those; otherwise fall back to "git" and "inotifywait"
if [ -z "$GW_GIT_BIN" ]; then GIT="git"; else GIT="$GW_GIT_BIN"; fi
if [ -z "$GW_INW_BIN" ]; then INW="inotifywait"; else INW="$GW_INW_BIN"; fi
@ -187,6 +191,10 @@ fi
###############################################################################
# main program loop: wait for changes and commit them
# whenever inotifywait reports a change, we spawn a timer (sleep process) that gives the writing
# process some time (in case there are a lot of changes or w/e); if there is already a timer
# running when we receive an event, we kill it and start a new one; thus we only commit if there
# have been no changes reported during a whole timeout period
while read -r line; do
# is there already a timeout process running?
if [[ -n "$SLEEP_PID" ]] && kill -0 $SLEEP_PID &>/dev/null; then
@ -207,7 +215,7 @@ while read -r line; do
"$GIT" commit $GIT_COMMIT_ARGS -m"$FORMATTED_COMMITMSG" # construct commit message and commit
if [ -n "$PUSH_CMD" ]; then eval $PUSH_CMD; fi
) & # and sent into background
) & # and send into background
SLEEP_PID=$! # and remember its PID
done < <(eval $INCOMMAND)