Blame


1 9362f1cc 2023-12-27 benni #!/bin/sh
2 9362f1cc 2023-12-27 benni
3 9362f1cc 2023-12-27 benni die() {
4 9362f1cc 2023-12-27 benni ec=$1
5 9362f1cc 2023-12-27 benni shift
6 9362f1cc 2023-12-27 benni echo "$@" >&2
7 9362f1cc 2023-12-27 benni exit "$ec"
8 9362f1cc 2023-12-27 benni }
9 9362f1cc 2023-12-27 benni
10 9362f1cc 2023-12-27 benni usage() {
11 9362f1cc 2023-12-27 benni die 1 "Usage: got-archive-all [-sV] [-o outdir] [-t tmpdir] prefix"
12 9362f1cc 2023-12-27 benni }
13 9362f1cc 2023-12-27 benni
14 9362f1cc 2023-12-27 benni args=$(getopt o:st:V $*)
15 9362f1cc 2023-12-27 benni [ $? -ne 0 ] && usage
16 9362f1cc 2023-12-27 benni
17 9362f1cc 2023-12-27 benni set -- $args
18 9362f1cc 2023-12-27 benni
19 9362f1cc 2023-12-27 benni flags=
20 9362f1cc 2023-12-27 benni while [ $# -ne 0 ]; do
21 9362f1cc 2023-12-27 benni case "$1" in
22 9362f1cc 2023-12-27 benni -o)
23 9362f1cc 2023-12-27 benni flags="$flags -o $2"
24 9362f1cc 2023-12-27 benni shift
25 9362f1cc 2023-12-27 benni shift
26 9362f1cc 2023-12-27 benni ;;
27 9362f1cc 2023-12-27 benni -s)
28 9362f1cc 2023-12-27 benni flags="$flags -s"
29 9362f1cc 2023-12-27 benni shift
30 9362f1cc 2023-12-27 benni ;;
31 9362f1cc 2023-12-27 benni -t)
32 9362f1cc 2023-12-27 benni flags="$flags -t $2"
33 9362f1cc 2023-12-27 benni shift
34 9362f1cc 2023-12-27 benni shift
35 9362f1cc 2023-12-27 benni ;;
36 9362f1cc 2023-12-27 benni -V)
37 9362f1cc 2023-12-27 benni echo "got-archive-all-@VERSION@"
38 9362f1cc 2023-12-27 benni exit 1
39 9362f1cc 2023-12-27 benni ;;
40 9362f1cc 2023-12-27 benni --)
41 9362f1cc 2023-12-27 benni shift
42 9362f1cc 2023-12-27 benni break
43 9362f1cc 2023-12-27 benni ;;
44 9362f1cc 2023-12-27 benni esac
45 9362f1cc 2023-12-27 benni done
46 9362f1cc 2023-12-27 benni
47 9362f1cc 2023-12-27 benni [ $# -ne 1 ] && usage
48 9362f1cc 2023-12-27 benni
49 9362f1cc 2023-12-27 benni prefix=$1
50 9362f1cc 2023-12-27 benni
51 9362f1cc 2023-12-27 benni printf 'flags=%s\n' "$flags"
52 9362f1cc 2023-12-27 benni
53 9362f1cc 2023-12-27 benni for repo in "$prefix"/*.git; do
54 9362f1cc 2023-12-27 benni [ -d "$repo/refs/tags" ] || continue
55 9362f1cc 2023-12-27 benni
56 9362f1cc 2023-12-27 benni for tag in "$repo"/refs/tags/*; do
57 9362f1cc 2023-12-27 benni tag=$(basename "$tag")
58 9362f1cc 2023-12-27 benni
59 9362f1cc 2023-12-27 benni got-archive $flags -b "$tag" "$repo"
60 9362f1cc 2023-12-27 benni done
61 9362f1cc 2023-12-27 benni done