blob: 55c2650103726d88d7df706a26ca1ffc54bc6811 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
#!@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'
}
|