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