X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fupstream%2Fbackupninja.git;a=blobdiff_plain;f=lib%2Ftools.in;h=888dad133b627b3bd0d4a12f565609d8c127b40f;hp=90df264566d7ad2055af38883bdfde4371f5b0b5;hb=ecf8ddbe3aee37f5a2b772207b3deea3d952d2cb;hpb=9208b449da1a1df50c2759946c9931f456af1e87 diff --git a/lib/tools.in b/lib/tools.in index 90df264..888dad1 100644 --- a/lib/tools.in +++ b/lib/tools.in @@ -1,4 +1,6 @@ #!@BASH@ +# -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*- +# vim: set filetype=sh sw=3 sts=3 expandtab autoindent: # This file contains functions shared between ninjahelper and backupninja. @@ -9,46 +11,50 @@ # 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 + local tempfile=`mktemp /tmp/$1.XXXXXXXX` + echo $tempfile } ##################################################### ## CONFIG-FILE RELATED FUNCTIONS function setfile() { - CURRENT_CONF_FILE=$1 + CURRENT_CONF_FILE=$1 } function setsection() { - CURRENT_SECTION=$1 + CURRENT_SECTION=$1 } # -# sets a global var with name equal to $1 -# to the value of the configuration parameter $1 -# $2 is the default. -# +# Retrieves the configuration variable named $1 from the current config +# file and section and echoes its value. If it is empty or not found, $2 +# is used. +function printconf() { + CURRENT_PARAM=$1 + ret=`@AWK@ -f $libdirectory/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 + + echo "$ret" +} + + +# +# Retrieves the configuration variable named $1 from the current config +# file and section and assigns its value to the global variable with the +# same name. If it is empty or not found, $2 is used. +# function getconf() { - CURRENT_PARAM=$1 - ret=`awk -f $libdirectory/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' + ret=`printconf "$1" "$2"` + + # 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' }