X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=src%2Fbackupninja.in;h=5db2ff12ecf45cdb36a79ac60d62018011c8f5b8;hb=cfc47e5571e61f4323b9f64f9cbb64dfbc4bf1b4;hp=55a3d00410371ff452ebabb31ba661aef7595915;hpb=960acb6b0c4cbef60ba72f2c637dc543ae2a85c5;p=matthijs%2Fupstream%2Fbackupninja.git diff --git a/src/backupninja.in b/src/backupninja.in index 55a3d00..5db2ff1 100755 --- a/src/backupninja.in +++ b/src/backupninja.in @@ -1,4 +1,6 @@ #!@BASH@ +# -*- mode: sh; sh-basic-offset: 8; indent-tabs-mode: nil; -*- +# # |\_ # B A C K U P N I N J A /()/ # `\| @@ -19,7 +21,7 @@ ##################################################### ## FUNCTIONS -function setupcolors() { +function setupcolors () { BLUE="\033[34;01m" GREEN="\033[32;01m" YELLOW="\033[33;01m" @@ -30,7 +32,7 @@ function setupcolors() { COLORS=($BLUE $GREEN $YELLOW $RED $PURPLE) } -function colorize() { +function colorize () { if [ "$usecolors" == "yes" ]; then local typestr=`echo "$@" | sed 's/\(^[^:]*\).*$/\1/'` [ "$typestr" == "Debug" ] && type=0 @@ -50,8 +52,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 +125,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. # @@ -196,7 +150,7 @@ function tolower() { # simple to integer function function toint() { - echo "$1" | tr [:alpha:] -d + echo "$1" | tr -d [:alpha:] } # @@ -326,7 +280,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 +380,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 @@ -472,7 +435,7 @@ fi [ -f "$logfile" ] || touch $logfile if [ "$UID" != "0" ]; then - echo "$0 can only be run as root" + echo "`basename $0` can only be run as root" exit 1 fi @@ -510,7 +473,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'"