]> arthur.barton.de Git - bup.git/blobdiff - t/configure-sampledata
index: fix -H option
[bup.git] / t / configure-sampledata
index d57d0dd7395379bc6dfc2881b978624261c2a38e..cec49eb7b1d431e5cc709d69d47c57dee1af435a 100755 (executable)
@@ -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