snap-sync: new function check_prerequisites()

- check availability of referenced programs at runtime
- check if $SNAPPER_CONFIG is readable

Signed-off-by: Ralf Zerres <ralf.zerres@networkx.de>
This commit is contained in:
2017-11-08 16:45:39 +01:00
parent 2612174cfe
commit 15a0aee30e

View File

@@ -43,6 +43,23 @@ exec 3>$PIPE
# functions
###
check_prerequisites () {
# requested binaries:
which awk >/dev/null 2>&1 || { echo "'awk' is not installed." && exit 1; }
which sed >/dev/null 2>&1 || { echo "'sed' is not installed." && exit 1; }
which tee >/dev/null 2>&1 || { echo "'tee' is not installed." && exit 1; }
which btrfs >/dev/null 2>&1 || { echo "'btrfs' is not installed." && exit 1; }
which findmnt >/dev/null 2>&1 || { echo "'findmnt' is not installed." && exit 1; }
which notify-send >/dev/null 2>&1 || { echo "'notify-send' is not installed." && exit 1; }
if [ $(id -u) -ne 0 ] ; then echo "Script must be run as root" ; exit 1 ; fi
if [ ! -r "$SNAPPER_CONFIG" ]; then
die "$SNAPPER_CONFIG does not exist."
fi
}
die() {
error "$@"
exit 1
@@ -179,7 +196,7 @@ Options:
directory name on first backup"
-u, --UUID <UUID> Specify the UUID of the mounted BTRFS subvolume to back up to. Otherwise will prompt."
If multiple mount points are found with the same UUID, will prompt user."
--remote <address> Send the snapshot backup to a remote machine. The snapshot will be sent via ssh. You
--remote <address> Send the snapshot backup to a remote machine. The snapshot will be sent via ssh. You
should specify the remote machine's hostname or ip address. The 'root' user must be
permitted to login on the remote machine.
-v, --verbose Be more verbose on what's going on.
@@ -199,8 +216,7 @@ ssh=""
parse_params $@
[[ $EUID -ne 0 ]] && die "Script must be run as root."
! [[ -f $SNAPPER_CONFIG ]] && die "$SNAPPER_CONFIG does not exist."
check_prerequisites
if [[ "$uuid_cmdline" != "none" ]]; then
if [[ -z $ssh ]]; then
@@ -290,10 +306,6 @@ else
printf "The disk is mounted at %s:%s.\n" "$remote" "$selected_mnt" | tee $PIPE
fi
source $SNAPPER_CONFIG
selected_configs=${selected_configs:-$SNAPPER_CONFIGS}
declare -a BACKUPDIRS_ARRAY
declare -a MYBACKUPDIR_ARRAY
declare -a OLD_NUM_ARRAY