mirror of
https://0xacab.org/liberate/backupninja.git
synced 2024-11-10 04:42:31 +01:00
88 lines
1.9 KiB
Bash
88 lines
1.9 KiB
Bash
#!@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'
|
|
}
|