X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=handlers%2Frdiff;h=713f4c6e53732fed9fd85de78c6644d5b6cf44dd;hb=d52a1ac97e97c51c15ccd52d7dce93d3a092e636;hp=61eb7f5c7e05d5af6cfa82ae3303909269779f46;hpb=c7e96acc455c3b5c74f97e812072e1a55664adce;p=matthijs%2Fupstream%2Fbackupninja.git diff --git a/handlers/rdiff b/handlers/rdiff index 61eb7f5..713f4c6 100644 --- a/handlers/rdiff +++ b/handlers/rdiff @@ -12,6 +12,7 @@ getconf type; sourcetype=$type getconf label getconf keep 60 getconf include +getconf vsinclude getconf exclude ### DESTINATION ### @@ -24,6 +25,18 @@ getconf type; desttype=$type getconf user; destuser=$user getconf host; desthost=$host +# See if vservers are configured +if [ "$vservers" = "yes" ] +then + if [ ! -d $VROOTDIR ] + then + fatal "vservers enabled, but $VROOTDIR does not exist!" + else + info "vserver method enabled" + usevserver=1 + fi +fi + [ "$destdir" != "" ] || fatal "Destination directory not set" if [ "$desttype" == "remote" ]; then @@ -54,7 +67,8 @@ fi [ "$label" != "" ] || fatal "Source missing label" [ "$sourcetype" == "local" ] || fatal "Only local source type supported" -[ "$include" != "" ] || fatal "No source includes specified" +[ "$include" != "" -o "$vsinclude" != "" ] || fatal "No source includes specified" +#TODO should I test for vsinclude if usevservers=1? execstr_clientpart="/" @@ -101,6 +115,19 @@ for i in $include; do execstr="${execstr}--include '$str' " done +# vsinclude +if [ $usevserver ] +then + for vserver in `ls $VROOTDIR|grep -v lost+found` + do + for vi in $vsinclude + do + str="${vi//__star__/*}" + execstr="${execstr}--include '$VROOTDIR/$vserver$str' " + done + done +fi + # exclude everything else execstr="${execstr}--exclude '/*' "