diff --git a/src/backupninja.in b/src/backupninja.in index c3733cfd233bb947cec2798efac123c67516f04e..df1adfd1be69dfb530da60671ba508e98ee9b6ba 100755 --- a/src/backupninja.in +++ b/src/backupninja.in @@ -215,6 +215,7 @@ function isnow() { whendayofweek=$1; at=$2; whentime=$3; whenday=`toint "$whendayofweek"` whendayofweek=`tolower "$whendayofweek"` + whentimeoriginal=$whentime whentime=`echo "$whentime" | @SED@ 's/:[0-9][0-9]$//' | @SED@ -r 's/^([0-9])$/0\1/'` if [ "$whendayofweek" == "everyday" -o "$whendayofweek" == "daily" ]; then @@ -225,15 +226,45 @@ function isnow() { if [ "$whendayofweek" != "$nowdayofweek" ]; then whendayofweek=${whendayofweek%s} if [ "$whendayofweek" != "$nowdayofweek" ]; then + if [ "$whendayofweek" != "mondays" -a "$whendayofweek" != "tuesdays" -a "$whendayofweek" != "wednesdays" -a "$whendayofweek" != "thursdays" -a "$whendayofweek" != "fridays" -a "$whendayofweek" != "saturdays" -a "$whendayofweek" != "sundays" ]; then + warning "The day in the 'when' option in the configuration is malformed. Please read the README for examples." + fi + if [ "$at" != "at" ]; then + warning "The 'when' option in the configuration doesn't contain an 'at'. Please read the README for examples." + fi + if [[ "$whentimeoriginal" != @([0-9][0-9])?(:[0-9][0-9]) ]]; then + warning "The time in the 'when' option in the configuration is malformed or does not exist. Please read the README for examples." + fi return 0 fi fi elif [ "$whenday" != "$nowday" ]; then + if [ "$whenday" -lt 1 -o "$whenday" -gt 31 ]; then + warning "The numeric value of the day in the 'when' option in the configuration does not match a day. Please read the README for examples." + fi + if [ -z "$whentime" ]; then + warning "The 'when' variable in the configuration file is malformed. You either didn't specify the day or the time. Please read the README for eamples." + fi + if [ "$at" != "at" ]; then + warning "The 'when' option in the configuration doesn't contain an 'at'. Please read the README for examples." + fi + return 0 + elif [ -z "$whentime" ]; then + warning "The 'when' variable in the configuration file is malformed. You either didn't specify the day or the time. Please read the README for examples." return 0 fi - [ "$at" == "at" ] || return 0 - [ "$whentime" == "$nowtime" ] || return 0 + if [ "$at" != "at" ]; then + warning "The 'when' option in the configuration doesn't contain an 'at'. Please read the README for examples." + return 0 + fi + + if [[ "$whentimeoriginal" != @([0-9][0-9])?(:[0-9][0-9]) ]]; then + warning "The time in the 'when' option in the configuration is malformed. Please read the README for examples." + return 0 + elif [ "$whentime" != "$nowtime" ]; then + return 0 + fi return 1 }