X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fupstream%2Fbackupninja.git;a=blobdiff_plain;f=lib%2Ftools.in;h=9879e741039a5994bd544fd8e60896c9612d6cd5;hp=89f2ff733918e888fc79a2f927252ee63e8bd346;hb=ac1a55a22999e2161c42f8c30fb497461017d93e;hpb=13149b96008227bb11582fa0e0d59b727fd8d1bd diff --git a/lib/tools.in b/lib/tools.in index 89f2ff7..9879e74 100644 --- a/lib/tools.in +++ b/lib/tools.in @@ -1,19 +1,58 @@ #!@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 +} + +# +# 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() { + local CURRENT_PARAM=$1 + local 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() { + local ret=`printconf "$1" "$2"` + + # We use escape the $ in $ret to delay expansion of $ret, so when $1 + # is foo, eval sees foo=$ret and properly does the assignment + # (without the backslash, the right part of the assignment would be + # whatever is in ret and be subject to all kinds of expansion. + eval $1=\$ret +}