X-Git-Url: https://arthur.barton.de/gitweb/?a=blobdiff_plain;f=t%2Fconfigure-sampledata;h=cec49eb7b1d431e5cc709d69d47c57dee1af435a;hb=57aaebfd07e7f35aed2ebd44191669b1d9db49df;hp=d57d0dd7395379bc6dfc2881b978624261c2a38e;hpb=118e483b35e36ca011146e1ddea5b47f185888f7;p=bup.git diff --git a/t/configure-sampledata b/t/configure-sampledata index d57d0dd..cec49eb 100755 --- a/t/configure-sampledata +++ b/t/configure-sampledata @@ -1,35 +1,66 @@ #!/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=2 +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 $? + mkfifo fifo + 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 - # test -e is false for dangling symlinks. - if test -h b -o -e b; then rm b; fi - if test -h c -o -e c; then rm c; fi - if test -h etc -o -e etc; then rm etc; fi - ) + --clean) + clean + ;; + --revision) + echo "$revision" || exit $? ;; *) usage 1>&2; exit 1