#!@BASH@
+# -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
+#
# |\_
# B A C K U P N I N J A /()/
# `\|
#####################################################
## FUNCTIONS
-function setupcolors() {
+function setupcolors () {
BLUE="\033[34;01m"
GREEN="\033[32;01m"
YELLOW="\033[33;01m"
COLORS=($BLUE $GREEN $YELLOW $RED $PURPLE)
}
-function colorize() {
+function colorize () {
if [ "$usecolors" == "yes" ]; then
local typestr=`echo "$@" | sed 's/\(^[^:]*\).*$/\1/'`
[ "$typestr" == "Debug" ] && type=0
# 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
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.
#
# simple to integer function
function toint() {
- echo "$1" | tr [:alpha:] -d
+ echo "$1" | tr -d [:alpha:]
}
#
echo "" > $bufferfile
echo_debug_msg=1
(
- . $scriptdir/$suffix $file
+ . $scriptdirectory/$suffix $file
) 2>&1 | (
while read a; do
echo $a >> $bufferfile
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
[ -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
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'"