+
+function deleteLock {
+ if ! rmdir /tmp/$(basename $0).lock; then
+ scottyerror "Could not delete lockfile /tmp/$(basename $0).lock!"
+ fi
+}
+
+function prepare {
+ scottyinfo "Preparing for sync"
+}
+
+function cleanup_abort {
+ scottyinfo "No cleanup_abort function was defined."
+}
+
+function _cleanup_abort {
+ scottyerror "Caught exit signal! Cleaning up..."
+
+ cleanup_abort
+
+ if [ $(jobs -p) ]; then
+ scottyerror TERMinating remaining child processes...
+ kill $(jobs -p)
+ fi
+ deleteLock
+ exit
+}
+
+function prepare {
+ scottyinfo "No prepare function was defined."
+}
+
+function cleanup_normal {
+ scottyinfo "No cleanup_normal function was defined."
+}
+
+function backmeupscotty {
+ while getopts "qn:" opt; do
+ case $opt in
+ q)
+ exec > /dev/null
+ ;;
+ n)
+ BACKUP_RUNEVERYNTHDAY=$OPTARG
+ ;;
+ esac
+ done
+
+ if ! isIncompleteOrNthDay; then
+ scottyinfo "This is not the nth day and no incomplete backup exists."
+ exit 0
+ fi
+
+ trap _cleanup_abort EXIT
+
+ prepare
+ scottysync
+ cleanup_normal
+
+ trap deleteLock EXIT
+
+ exit 0
+}
+
+if ! mkdir /tmp/$(basename $0).lock; then
+ scottyerror "Another instance of $(basename $0) is still running!"
+ exit 1
+else
+ trap deleteLock EXIT
+fi