diff --git a/remote-backup b/remote-backup old mode 100644 new mode 100755 index f06985f..6344624 --- a/remote-backup +++ b/remote-backup @@ -6,20 +6,59 @@ # rotating backup-snapshots of /home whenever called # ---------------------------------------------------------------------- -unset PATH # suggestion from H. Milz: avoid accidental use of $PATH +#unset PATH # suggestion from H. Milz: avoid accidental use of $PATH # ------------- system commands used by this script -------------------- -ID=/usr/bin/id; -ECHO=/bin/echo; -MOUNT=/bin/mount; -RM=/bin/rm; -MV=/bin/mv; -CP=/bin/cp; -TOUCH=/bin/touch; +###BEGIN: generic tool checker +# FIXME: To reuse this function, be sure to edit this line (space separated +# list). +needed_tools="id echo mount rm mv cp touch rsync" +# +# One shall not need edit anything below this line +### +checktools() { + # This functions attempts to be generic enough to be reused in any program + # that needs to check that specific tools are present on the system + # and can be found in the PATH + var=$(echo $1 | tr '[:lower:]' '[:upper:]') + echo -n "# Looking for $1... " + local_var="$(which $1)" + eval $var="$local_var" + if [ -z "$local_var" ] + then + echo 'NOT FOUND!' + NOTFOUND="$NOTFOUND$1 " + DIE=1 + else + echo "$local_var" + FOUND="$FOUND$1 " + fi + unset local_var +} -RSYNC=/usr/bin/rsync; +for tool in $needed_tools +do + checktools "$tool" +done +echo +echo "# Found $FOUND" +echo + +if [ -n "$DIE" ] +then + echo "Some tools were not found, please check your installation" >&2 + echo "Needed tools: $needed_tools" >&2 + echo -n "Not found:" >&2 + for tool in $NOTFOUND + do + echo -n " $tool" >&2 + done + echo '!' >&2 + exit 127 +fi +###END: generic tool checker # ------------- file locations -----------------------------------------