aboutsummaryrefslogtreecommitdiff
path: root/handlers/rsync.in
diff options
context:
space:
mode:
Diffstat (limited to 'handlers/rsync.in')
-rw-r--r--handlers/rsync.in15
1 files changed, 11 insertions, 4 deletions
diff --git a/handlers/rsync.in b/handlers/rsync.in
index 386255e..f0df52f 100644
--- a/handlers/rsync.in
+++ b/handlers/rsync.in
@@ -275,8 +275,15 @@ function eval_config {
mv=move_files
fi
- excludes=`echo "$exclude" | @SED@ -e "s/^/--exclude='/g" -e "s/ /' --exclude='/g" -e "s/$/'/"`
-
+ set -o noglob
+ SAVEIFS=$IFS
+ IFS=$(echo -en "\n\b")
+ for i in $exclude; do
+ str="${i//__star__/*}"
+ excludes="${excludes} --exclude='$str'"
+ done
+ IFS=$SAVEIFS
+ set +o noglob
}
function rotate_short {
@@ -1109,9 +1116,9 @@ for SECTION in $include; do
set_dest
info "Syncing $SECTION on $dest_path..."
- debug $nice $rsync "${rsync_options[@]}" $filelist_flag "$excludes" $batch_option $orig $dest_path
+ debug $nice $rsync ${rsync_options[@]} $filelist_flag $excludes $batch_option $orig $dest_path
set_pipefail
- $nice $rsync "${rsync_options[@]}" $filelist_flag "$excludes" $batch_option $orig $dest_path | tee -a $log
+ $nice su -c "$rsync ${rsync_options[@]} --delete-excluded $filelist_flag $excludes $batch_option $orig $dest_path" | tee -a $log
if [ "$?" != "0" ]; then
fatal "Rsync error when trying to transfer $SECTION"