Add a vim modeline with indentation settings.
[matthijs/upstream/backupninja.git] / lib / tools.in
index 89f2ff733918e888fc79a2f927252ee63e8bd346..929826b2eacb252213abce10c2d553ed6b971c71 100644 (file)
@@ -1,19 +1,49 @@
 #!@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.
+
+#####################################################
+## MISC FUNCTIONS
 
 #
 # 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
+}
+
+function setsection() {
+   CURRENT_SECTION=$1
 }
 
+#
+# 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 $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'
+}