# -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
+# vim: set filetype=sh sw=3 sts=3 expandtab autoindent:
#
# rdiff-backup handler script for backupninja
# requires rdiff-backup
# given no arguments, returns the local version.
# given a user and host, returns the remote version.
# if user or host is missing, returns the local version.
+ local version
if [ "$#" -lt 2 ]; then
debug "$RDIFFBACKUP -V"
echo `$RDIFFBACKUP -V`
local user=$1
local host=$2
debug "ssh $sshoptions $host -l $user '$RDIFFBACKUP -V'"
- echo `ssh $sshoptions $host -l $user "$RDIFFBACKUP -V | grep rdiff-backup"`
+ version=`ssh $sshoptions $host -l $user "$RDIFFBACKUP -V"`
+ if [ $? = 127 ]; then
+ fatal "Unable to execute rdiff-backup on remote server. It probably isn't installed"
+ else
+ echo "$version" | grep rdiff-backup
+ fi
fi
}
if [ "$user" == "" ]; then
fatal "User must be specified for remote $section."
fi
- if [ "host" == "" ]; then
+ if [ "$host" == "" ]; then
fatal "Host must be specifed for remote $section."
fi
fi
# TODO: order the includes and excludes
# excludes
+SAVEIFS=$IFS
+IFS=$(echo -en "\n\b")
for i in $exclude; do
str="${i//__star__/*}"
execstr="${execstr}--exclude '$str' "
done
+IFS=$SAVEIFS
# includes
+SAVEIFS=$IFS
+IFS=$(echo -en "\n\b")
for i in $include; do
[ "$i" != "/" ] || fatal "Sorry, you cannot use 'include = /'"
str="${i//__star__/*}"
execstr="${execstr}--include '$str' "
done
+IFS=$SAVEIFS
# vsinclude
if [ $usevserver = yes ]; then
for vserver in $vsnames; do
+ SAVEIFS=$IFS
+ IFS=$(echo -en "\n\b")
for vi in $vsinclude; do
str="${vi//__star__/*}"
str="$VROOTDIR/$vserver$str"
warning "vsinclude statement '${vi//__star__/*}' will be ignored for VServer $vserver. $symlinks_warning"
fi
done
+ IFS=$SAVEIFS
done
fi