#!/usr/bin/env bash
-set -e -o pipefail
+set -o pipefail
-top=$(pwd)
+# NOTE: any relevant changes to var/ must be accompanied by an
+# increment to the revision.
+
+revision=1
+readonly revision
+
+top="$(pwd)" || exit $?
usage()
{
- echo 'Usage: t/configure-sampledata [--setup | --clean]'
+ echo 'Usage: t/configure-sampledata [--setup | --clean | --revision]'
}
if test "$#" -ne 1; then
usage 1>&2; exit 1
fi
+rm_symlinks()
+{
+ for p in "$@"; do
+ # test -e is false for dangling symlinks.
+ if test -h "$p" -o -e "$p"; then rm "$p" || exit $?; fi
+ done
+}
+
+clean()
+(
+ cd t/sampledata || exit $?
+ if test -e var; then rm -r var || exit $?; fi
+ # Remove legacy content (before everything moved to var/).
+ rm_symlinks abs-symlink b c etc
+)
+
case "$1" in
- '--setup')
+ --setup)
(
- cd t/sampledata
- ln -sf a b
- ln -sf b c
- ln -sf /etc .
- )
+ clean
+ mkdir -p t/sampledata/var/rev || exit $?
+ cd t/sampledata/var || exit $?
+ ln -sf a b || exit $?
+ ln -sf b c || exit $?
+ ln -sf "$(pwd)/abs-symlink-target" abs-symlink || exit $?
+ mkdir -p cmd doc lib/bup || exit $?
+ cp -pP "$top"/cmd/*.py cmd/ || exit $?
+ cp -pP "$top"/Documentation/*.md doc/ || exit $?
+ cp -pP "$top"/lib/bup/*.py lib/bup || exit $?
+ # The "v" ensures that if "configure-sampledata
+ # --revision" and/or the setup above fails somehow,
+ # callers like make will be looking for a file that won't
+ # exist.
+ touch rev/v$revision || exit $?
+ ) || exit $?
;;
- '--clean')
- (
- cd t/sampledata
- if test -e b; then rm b; fi
- if test -e c; then rm c; fi
- if test -e etc; then rm etc; fi
- )
+ --clean)
+ clean
+ ;;
+ --revision)
+ echo "$revision" || exit $?
;;
*)
usage 1>&2; exit 1