Files
rsync/support/rsync-slash-strip
Wayne Davison 1f0e62f139 Improve a couple support scripts:
- rsync-no-vanished now avoids joining stdout & stderr, avoids affecting
  a non-client run, and gets the rsync status code correctly.
- rsync-slash-strip now avoids affecting a non-client run.
2021-11-13 10:39:09 -08:00

25 lines
769 B
Bash
Executable File

#!/usr/bin/env bash
# This script can be used as an rsync command-line filter that strips a single
# trailing slash from each arg. That treats "src/" the same as "src", thus
# you need to use "src/." or "src//" for just the contents of the "src" dir.
# (Note that command-line dir-excludes would need to use "excl//" too.)
#
# To use this, name it something like "rs", put it somewhere in your path, and
# then use "rs" in place of "rsync" when you are typing your copy commands.
REAL_RSYNC=/usr/bin/rsync
args=()
for arg in "${@}"; do
if [[ "$arg" == --server ]]; then
exec $REAL_RSYNC "${@}"
exit $? # Not reached
fi
if [[ "$arg" == / ]]; then
args=("${args[@]}" /)
else
args=("${args[@]}" "${arg%/}")
fi
done
exec $REAL_RSYNC "${args[@]}"