#!/bin/sh
set -e

tar=${tar-star}
if echo "${tar}" | grep / > /dev/null; then
	if echo "${tar}" | grep '^/' > /dev/null; then
		:
	else
		tar=`pwd`/${tar}
	fi
fi
echo tar installed as "$tar" 1>&2


mkdir /tmp/test.$$
cd /tmp/test.$$

set -x

mkdir test
mkdir test/dir1
mkdir test/dir2

echo dir1-file > test/dir1/dir1-file
echo dir1-file2 > test/dir1/dir1-file2
echo dir1-file3 > test/dir1/dir1-file3
echo dir2-file > test/dir2/dir2-file
echo dir2-file2 > test/dir2/dir2-file2

"$tar" -P -c -xdev -sparse -acl -link-dirs level=0 \
	tardumps=/tmp/test.$$/tardumps -wtardumps \
	f=/tmp/test.$$/full.tar -C /tmp/test.$$/test .

rm -f test/dir1/dir1-file
mv test/dir1/dir1-file2 test/dir1/dir1-file2a
echo new >> test/dir1/dir1-file3
echo dir1-file4 > test/dir1/dir1-file4
mv test/dir2 test/dir2a

"$tar" -c -xdev -sparse -acl -link-dirs level=1 \
	tardumps=/tmp/test.$$/tardumps -wtardumps \
	f=/tmp/test.$$/incremental.tar -C /tmp/test.$$/test .

mv test orig
mkdir test
cd /tmp/test.$$/test

"$tar" -xpU -restore -partial f=/tmp/test.$$/full.tar
"$tar" -xpU -restore -partial f=/tmp/test.$$/incremental.tar

rm star-symtable
rm -rf star-tmpdir
cd /tmp/test.$$/
diff -r orig test > diff.out
ret=$?

cd /
if [ "$ret" = 0 ]; then
	rm -rf /tmp/test.$$
fi
exit $ret
