Split a part of getconf into printconf.
authorMatthijs Kooijman <matthijs@stdin.nl>
Wed, 17 Mar 2010 21:09:07 +0000 (22:09 +0100)
committerMatthijs Kooijman <matthijs@stdin.nl>
Fri, 19 Mar 2010 20:40:15 +0000 (21:40 +0100)
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"`

lib/tools.in

index 929826b..888dad1 100644 (file)
@@ -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__}"