45 lines
1.2 KiB
Bash
45 lines
1.2 KiB
Bash
#!/bin/sh
|
|
|
|
# Copyright (C) 2008 by Wayne Davison <wayned@samba.org>
|
|
|
|
# This program is distributable under the terms of the GNU GPL (see
|
|
# COPYING).
|
|
|
|
# Test that --files-from=FILE works right.
|
|
|
|
. "$suitedir/rsync.fns"
|
|
|
|
SSH="$scratchdir/src/support/lsh.sh"
|
|
|
|
hands_setup
|
|
|
|
# This list of files skips the contents of "subsubdir" but includes
|
|
# the contents of "subsubdir2" due to its trailing slash.
|
|
cat >"$scratchdir/filelist" <<EOT
|
|
from/./
|
|
from/./dir/subdir
|
|
from/./dir/subdir/subsubdir
|
|
from/./dir/subdir/subsubdir2/
|
|
from/./dir/subdir/foobar.baz
|
|
EOT
|
|
|
|
# Create a chkdir without the content that we expect to be omitted.
|
|
$RSYNC -a --exclude=dir/text --exclude='subsubdir/**' "$fromdir/" "$chkdir/"
|
|
|
|
checkit "$RSYNC -av --files-from='$scratchdir/filelist' '$scratchdir' '$todir/'" "$chkdir" "$todir"
|
|
|
|
for filehost in '' 'localhost:'; do
|
|
for srchost in '' 'localhost:'; do
|
|
if [ -z "$srchost" ]; then
|
|
desthost='localhost:'
|
|
else
|
|
desthost=''
|
|
fi
|
|
|
|
rm -rf "$todir"
|
|
checkit "$RSYNC -avse '$SSH' --rsync-path='$RSYNC' --files-from='$filehost$scratchdir/filelist' '$srchost$scratchdir' '$desthost$todir/'" "$chkdir" "$todir"
|
|
done
|
|
done
|
|
|
|
# The script would have aborted on error, so getting here means we've won.
|
|
exit 0
|