]> git.llucax.com Git - software/bacap.git/blobdiff - bacap
Fail if the BACKUP_DIR doesn't exist
[software/bacap.git] / bacap
diff --git a/bacap b/bacap
index db92c50d805001327e5edadb857e132c17ba5cfb..c3b541bc1ceff804ba80b57d3b18dfb5cfe75a1a 100755 (executable)
--- a/bacap
+++ b/bacap
@@ -50,26 +50,27 @@ BACAPRC=$1
 
 # Load configuration files
 load_config() {
+       extra_config=$1
        source "/etc/bacaprc" 2> /dev/null
        source "/etc/bacap/bacaprc" 2> /dev/null
        source "$SCRIPT_DIR/bacaprc" 2> /dev/null
        test -n "$BACAPRC" && source "$BACAPRC"
-}
-load_config
-
-export RSYNC_RSH
+       test -n "$extra_config" && source "$1" 2> /dev/null
 
-run=
-[ $DRY_RUN -eq 1 ] &&
-       run=echo
-[ $VERBOSE -eq 1 ] &&
-       RSYNC_FLAGS="$RSYNC_FLAGS $RSYNC_VERBOSE_FLAGS"
-[ $DEBUG -eq 1 ] &&
-       V=-v
-exec 3>&2
-[ -n "$LOG_FILE" ] &&
-       exec 1>>"$LOG_FILE" &&
-       exec 2>>"$LOG_FILE"
+       run=
+       [ $DRY_RUN -eq 1 ] &&
+               run=echo
+       [ $VERBOSE -eq 1 ] &&
+               RSYNC_FLAGS="$RSYNC_FLAGS $RSYNC_VERBOSE_FLAGS"
+       [ $DEBUG -eq 1 ] &&
+               V=-v
+       exec 3>&2
+       [ -n "$LOG_FILE" ] &&
+               exec 1>>"$LOG_FILE" &&
+               exec 2>>"$LOG_FILE"
+
+       export RSYNC_RSH
+}
 
 error() {
        echo "$@" >&3
@@ -88,6 +89,14 @@ ping_host() {
        ping -c1 "$1" > /dev/null 2>&1
 }
 
+load_config
+
+if ! test -d "$BACKUP_PATH"
+then
+       error "BACKUP_PATH=$BACKUP_PATH doesn't exist!"
+       exit 1
+fi
+
 date=`date "+$DATE_FMT"`
 log
 log
@@ -99,8 +108,7 @@ for host_path in "$CONFIG_PATH"/*
 do
        saved_ret=$ret
        # Load default config and override config if correspond
-       load_config
-       source "$host_path/bacaprc" 2>/dev/null
+       load_config "$host_path/bacaprc"
        host=`basename "$host_path"`
        host_backup_path="$BACKUP_PATH/$host"
        mkdir -p $host_backup_path