#!@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() { local tempfile=`mktemp /tmp/$1.XXXXXXXX` echo $tempfile } # # compare version numbers. # returns 0 if equal, 1 if $1>$2, and 2 if $1<$2 # function compare_versions() { if [[ "$1" == "$2" ]]; then return 0 fi local IFS=. local i version_1=($1) version_2=($2) for ((i=${#version_1[@]}; i<${#version_2[@]}; i++)); do version_1[i]=0 done for ((i=0; i<${#version_1[@]}; i++)); do if [[ -z ${version_2[i]} ]]; then version_2[i]=0 fi if ((10#${version_1[i]} > 10#${version_2[i]})); then return 1 fi if ((10#${version_1[i]} < 10#${version_2[i]})); then return 2 fi done return 0 } # # compare version numbers: >= # function version_ge() { compare_versions "$1" "$2" comp=$? [ $comp -eq 0 ] || [ $comp -eq 1 ] } ##################################################### ## 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' }