]> arthur.barton.de Git - bup.git/blob - t/configure-sampledata
configure-sampledata: only create random paths if asked
[bup.git] / t / configure-sampledata
1 #!/usr/bin/env bash
2
3 set -o pipefail
4
5 # NOTE: any relevant changes to var/ must be accompanied by an
6 # increment to the revision.
7
8 revision=3
9
10 top="$(pwd)" || exit $?
11
12 usage()
13 {
14     echo 'Usage: t/configure-sampledata [--setup | --clean | --revision]'
15 }
16
17 if test "$#" -ne 1; then
18     usage 1>&2; exit 1
19 fi
20
21 rm_symlinks()
22 {
23     for p in "$@"; do
24         # test -e is false for dangling symlinks.
25         if test -h "$p" -o -e "$p"; then rm "$p" || exit $?; fi
26     done
27 }
28
29 clean()
30 (
31     cd t/sampledata || exit $?
32     if test -e var; then rm -r var || exit $?; fi
33     # Remove legacy content (before everything moved to var/).
34     rm_symlinks abs-symlink b c etc
35 )
36
37 case "$1" in
38     --setup)
39         (
40             clean
41             mkdir -p t/sampledata/var/rev || exit $?
42             cd t/sampledata/var || exit $?
43             ln -sf a b || exit $?
44             ln -sf b c || exit $?
45             ln -sf "$(pwd)/abs-symlink-target" abs-symlink || exit $?
46             mkfifo fifo
47             mkdir -p cmd doc lib/bup || exit $?
48             cp -pP "$top"/cmd/*.py cmd/ || exit $?
49             cp -pP "$top"/Documentation/*.md doc/ || exit $?
50             cp -pP "$top"/lib/bup/*.py lib/bup || exit $?
51             mkdir path-zoo || exit $?
52             if test "$BUP_TEST_RANDOMIZED_SAMPLEDATA_PATHS"; then
53                 "$top"/t/make-random-paths 3000 path-zoo || exit $?
54             fi
55             # The "v" ensures that if "configure-sampledata
56             # --revision" and/or the setup above fails somehow,
57             # callers like make will be looking for a file that won't
58             # exist.
59             touch rev/v$revision || exit $?
60         ) || exit $?
61         ;;
62     --clean)
63         clean
64         ;;
65     --revision)
66         echo "$revision" || exit $?
67         ;;
68     *)
69         usage 1>&2; exit 1
70         ;;
71 esac