X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fupstream%2Fbackupninja.git;a=blobdiff_plain;f=src%2Fbackupninja.in;h=f43eaabd2eb1f2767764025bb6b6053785f24335;hp=55a3d00410371ff452ebabb31ba661aef7595915;hb=9208b449da1a1df50c2759946c9931f456af1e87;hpb=960acb6b0c4cbef60ba72f2c637dc543ae2a85c5 diff --git a/src/backupninja.in b/src/backupninja.in index 55a3d00..f43eaab 100755 --- a/src/backupninja.in +++ b/src/backupninja.in @@ -19,7 +19,7 @@ ##################################################### ## FUNCTIONS -function setupcolors() { +setupcolors () { BLUE="\033[34;01m" GREEN="\033[32;01m" YELLOW="\033[33;01m" @@ -27,20 +27,18 @@ function setupcolors() { RED="\033[31;01m" OFF="\033[0m" CYAN="\033[36;01m" - COLORS=($BLUE $GREEN $YELLOW $RED $PURPLE) } -function colorize() { +colorize () { if [ "$usecolors" == "yes" ]; then local typestr=`echo "$@" | sed 's/\(^[^:]*\).*$/\1/'` - [ "$typestr" == "Debug" ] && type=0 - [ "$typestr" == "Info" ] && type=1 - [ "$typestr" == "Warning" ] && type=2 - [ "$typestr" == "Error" ] && type=3 - [ "$typestr" == "Fatal" ] && type=4 - color=${COLORS[$type]} + [ "$typestr" == "Debug" ] && COLOR=$BLUE + [ "$typestr" == "Info" ] && COLOR=$GREEN + [ "$typestr" == "Warning" ] && COLOR=$YELLOW + [ "$typestr" == "Error" ] && COLOR=$RED + [ "$typestr" == "Fatal" ] && COLOR=$PURPLE endcolor=$OFF - echo -e "$color$@$endcolor" + echo -e "$COLOR$@$endcolor" else echo -e "$@" fi @@ -50,8 +48,8 @@ function colorize() { # 0 - debug - blue # 1 - normal messages - green # 2 - warnings - yellow -# 3 - errors - orange -# 4 - fatal - red +# 3 - errors - red +# 4 - fatal - purple # First variable passed is the error level, all others are printed # if 1, echo out all warnings, errors, or fatal @@ -123,54 +121,6 @@ function msg { let "msgcount += 1" } -function setfile() { - CURRENT_CONF_FILE=$1 -} - -function setsection() { - CURRENT_SECTION=$1 -} - - -# -# create a temporary file in a secure way. -# -function maketemp() { - if [ -x /bin/mktemp ] - then - local tempfile=`mktemp /tmp/$1.XXXXXXXX` - else - DATE=`date` - sectmp=`echo $DATE | /usr/bin/md5sum | cut -d- -f1` - local tempfile=/tmp/$1.$sectmp - fi - echo $tempfile -} - - -# -# sets a global var with name equal to $1 -# to the value of the configuration parameter $1 -# $2 is the default. -# - -function getconf() { - CURRENT_PARAM=$1 - ret=`awk -f $scriptdir/parseini S=$CURRENT_SECTION P=$CURRENT_PARAM $CURRENT_CONF_FILE` - # if nothing is returned, set the default - if [ "$ret" == "" -a "$2" != "" ]; then - ret="$2" - fi - - # replace * with %, so that it is not globbed. - ret="${ret//\\*/__star__}" - - # this is weird, but single quotes are needed to - # allow for returned values with spaces. $ret is still expanded - # because it is in an 'eval' statement. - eval $1='$ret' -} - # # enforces very strict permissions on configuration file $file. # @@ -326,7 +276,7 @@ function process_action() { echo "" > $bufferfile echo_debug_msg=1 ( - . $scriptdir/$suffix $file + . $scriptdirectory/$suffix $file ) 2>&1 | ( while read a; do echo $a >> $bufferfile @@ -426,21 +376,30 @@ if [ ! -r "$conffile" ]; then fatal "Configuration file $conffile not found." fi -scriptdir=`grep scriptdirectory $conffile | awk '{print $3}'` -if [ ! -n "$scriptdir" ]; then - echo "Cound not find entry 'scriptdirectory' in $conffile" - fatal "Cound not find entry 'scriptdirectory' in $conffile" +# find $libdirectory +libdirectory=`grep '^libdirectory' $conffile | awk '{print $3}'` +if [ -z "$libdirectory" ]; then + if [ -d "@libdir@" ]; then + libdirectory="@libdir@" + else + echo "Could not find entry 'libdirectory' in $conffile." + fatal "Could not find entry 'libdirectory' in $conffile." + fi +else + if [ ! -d "$libdirectory" ]; then + echo "Lib directory $libdirectory not found." + fatal "Lib directory $libdirectory not found." + fi fi -if [ ! -d "$scriptdir" ]; then - echo "Script directory $scriptdir not found." - fatal "Script directory $scriptdir not found." -fi +# include shared functions +. $libdirectory/tools setfile $conffile # get global config options (second param is the default) getconf configdirectory @CFGDIR@/backup.d +getconf scriptdirectory @datadir@ getconf reportemail getconf reportsuccess yes getconf reportwarning yes @@ -510,7 +469,7 @@ for file in $files; do continue fi - if [ -e "$scriptdir/$suffix" ]; then + if [ -e "$scriptdirectory/$suffix" ]; then process_action $file $suffix else error "Can't process file '$file': no handler script for suffix '$suffix'"