r3562@krups: intrigeri | 2005-11-16 20:20:16 +0100
[matthijs/upstream/backupninja.git] / src / backupninja.in
index 55a3d00410371ff452ebabb31ba661aef7595915..f43eaabd2eb1f2767764025bb6b6053785f24335 100755 (executable)
@@ -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'"