diff options
Diffstat (limited to 'support/rsync-slash-strip')
-rwxr-xr-x | support/rsync-slash-strip | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/support/rsync-slash-strip b/support/rsync-slash-strip new file mode 100755 index 0000000..b57e61c --- /dev/null +++ b/support/rsync-slash-strip @@ -0,0 +1,24 @@ +#!/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[@]}" |