summaryrefslogtreecommitdiffstats
path: root/support/rsync-slash-strip
blob: b57e61c53b863b7adfdfc38decdaec6eee92da6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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[@]}"