X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fupstream%2Fbackupninja.git;a=blobdiff_plain;f=handlers%2Fdup.in;h=2f55b9c07668ac0b63680f9599b9d96f96032149;hp=59aa90a424cd24469dad2110d50e0a87a2c7f858;hb=4e0519e390137b18b545f0ad256d03941cdd7bac;hpb=1b991d6c1545b0c83ec86a5256af9db14384f443 diff --git a/handlers/dup.in b/handlers/dup.in index 59aa90a..2f55b9c 100644 --- a/handlers/dup.in +++ b/handlers/dup.in @@ -189,26 +189,35 @@ fi set -o noglob # excludes +SAVEIFS=$IFS +IFS=$(echo -en "\n\b") for i in $exclude; do str="${i//__star__/*}" execstr_source="${execstr_source} --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_source="${execstr_source} --include '$str'" done +IFS=$SAVEIFS # vsincludes 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" execstr_source="${execstr_source} --include '$str'" done + IFS=$SAVEIFS done fi @@ -263,18 +272,23 @@ fi ### Backup command debug "$precmd duplicity $execstr_command $execstr_options $execstr_source --exclude '**' / $execstr_serverpart" if [ ! $test ]; then + outputfile=`maketemp backupout` export PASSPHRASE=$password output=`nice -n $nicelevel \ su -c \ - "$precmd duplicity $execstr_command $execstr_options $execstr_source --exclude '**' / $execstr_serverpart 2>&1"` + "$precmd duplicity $execstr_command $execstr_options $execstr_source --exclude '**' / $execstr_serverpart >$outputfile 2>&1"` exit_code=$? + debug $output + cat $outputfile | (while read output ; do + info $output + done + ) if [ $exit_code -eq 0 ]; then - debug $output info "Duplicity finished successfully." else - debug $output fatal "Duplicity failed." fi + rm $outputfile fi return 0