code refactor: backupninja now uses vservers lib to init vservers support
[matthijs/upstream/backupninja.git] / src / backupninja.in
index f43eaabd2eb1f2767764025bb6b6053785f24335..b0766eb17f62f6108744bb71f8c1ad37538738d3 100755 (executable)
@@ -1,4 +1,6 @@
 #!@BASH@
+# -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
+#
 #                          |\_
 # B A C K U P N I N J A   /()/
 #                         `\|
@@ -19,7 +21,7 @@
 #####################################################
 ## FUNCTIONS
 
-setupcolors () {
+function setupcolors () {
        BLUE="\033[34;01m"
        GREEN="\033[32;01m"
        YELLOW="\033[33;01m"
@@ -27,18 +29,20 @@ setupcolors () {
        RED="\033[31;01m"
        OFF="\033[0m"
        CYAN="\033[36;01m"
+       COLORS=($BLUE $GREEN $YELLOW $RED $PURPLE)
 }
 
-colorize () {
+function colorize () {
        if [ "$usecolors" == "yes" ]; then
                local typestr=`echo "$@" | sed 's/\(^[^:]*\).*$/\1/'`
-               [ "$typestr" == "Debug" ] && COLOR=$BLUE
-               [ "$typestr" == "Info" ] && COLOR=$GREEN
-               [ "$typestr" == "Warning" ] && COLOR=$YELLOW
-               [ "$typestr" == "Error" ] && COLOR=$RED
-               [ "$typestr" == "Fatal" ] && COLOR=$PURPLE
+               [ "$typestr" == "Debug" ] && type=0
+               [ "$typestr" == "Info" ] && type=1
+               [ "$typestr" == "Warning" ] && type=2
+               [ "$typestr" == "Error" ] && type=3
+               [ "$typestr" == "Fatal" ] && type=4
+               color=${COLORS[$type]}
                endcolor=$OFF
-               echo -e "$COLOR$@$endcolor"
+               echo -e "$color$@$endcolor"
        else
                echo -e "$@"
        fi
@@ -146,7 +150,7 @@ function tolower() {
 
 # simple to integer function
 function toint() {
-       echo "$1" | tr [:alpha:] -d 
+       echo "$1" | tr -d [:alpha:] 
 }
 
 #
@@ -394,6 +398,7 @@ fi
 
 # include shared functions
 . $libdirectory/tools
+. $libdirectory/vserver
 
 setfile $conffile
 
@@ -418,10 +423,10 @@ getconf PGSQLDUMP /usr/bin/pg_dump
 getconf PGSQLDUMPALL /usr/bin/pg_dumpall
 getconf GZIP /bin/gzip
 getconf RSYNC /usr/bin/rsync
-getconf vservers no
-getconf VSERVERINFO /usr/sbin/vserver-info
-getconf VSERVER /usr/sbin/vserver
-getconf VROOTDIR `if [ -f "$VSERVERINFO" ]; then $VSERVERINFO info SYSINFO |grep vserver-Rootdir | awk '{print $2}'; fi`
+
+# initialize vservers support
+# (get config variables and check real vservers availability)
+init_vservers nodialog
 
 if [ ! -d "$configdirectory" ]; then
        echo "Configuration directory '$configdirectory' not found."
@@ -431,15 +436,10 @@ 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
 
-if [ "$vservers" == "yes" -a ! -d "$VROOTDIR" ]; then
-       echo "vservers option set in config, but $VROOTDIR is not a directory!"
-       fatal "vservers option set in config, but $VROOTDIR is not a directory!"
-fi
-
 ## Process each configuration file
 
 # by default, don't make files which are world or group readable.