From: Matthijs Kooijman Date: Wed, 17 Mar 2010 21:09:07 +0000 (+0100) Subject: Split a part of getconf into printconf. X-Git-Url: https://git.stderr.nl/gitweb?a=commitdiff_plain;h=ecf8ddbe3aee37f5a2b772207b3deea3d952d2cb;p=matthijs%2Fupstream%2Fbackupninja.git Split a part of getconf into printconf. The printconf function allows getting a variable without clobbering the global variable with te same name. This can be used for a per-handler override of a global variable, e.g. local_foo=`printconf "foo" "$foo"` --- diff --git a/lib/tools.in b/lib/tools.in index 929826b..888dad1 100644 --- a/lib/tools.in +++ b/lib/tools.in @@ -27,11 +27,10 @@ function setsection() { } # -# sets a global var with name equal to $1 -# to the value of the configuration parameter $1 -# $2 is the default. -# -function getconf() { +# 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 @@ -39,6 +38,18 @@ function getconf() { 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() { + ret=`printconf "$1" "$2"` + # replace * with %, so that it is not globbed. ret="${ret//\\*/__star__}"