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 1d063c9d 2023-12-27 benni die 1 "Usage: got-archive-all [-fsV] [-o outdir] [-t tmpdir] prefix"
12 9362f1cc 2023-12-27 benni }
13 9362f1cc 2023-12-27 benni
14 1d063c9d 2023-12-27 benni args=$(getopt fo: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 1d063c9d 2023-12-27 benni force=0
20 1d063c9d 2023-12-27 benni outdir=.
21 9362f1cc 2023-12-27 benni flags=
22 9362f1cc 2023-12-27 benni while [ $# -ne 0 ]; do
23 9362f1cc 2023-12-27 benni case "$1" in
24 1d063c9d 2023-12-27 benni -f)
25 1d063c9d 2023-12-27 benni force=1
26 1d063c9d 2023-12-27 benni shift
27 1d063c9d 2023-12-27 benni ;;
28 9362f1cc 2023-12-27 benni -o)
29 1d063c9d 2023-12-27 benni outdir=$2
30 9362f1cc 2023-12-27 benni flags="$flags -o $2"
31 9362f1cc 2023-12-27 benni shift
32 9362f1cc 2023-12-27 benni shift
33 9362f1cc 2023-12-27 benni ;;
34 9362f1cc 2023-12-27 benni -s)
35 9362f1cc 2023-12-27 benni flags="$flags -s"
36 9362f1cc 2023-12-27 benni shift
37 9362f1cc 2023-12-27 benni ;;
38 9362f1cc 2023-12-27 benni -t)
39 9362f1cc 2023-12-27 benni flags="$flags -t $2"
40 9362f1cc 2023-12-27 benni shift
41 9362f1cc 2023-12-27 benni shift
42 9362f1cc 2023-12-27 benni ;;
43 9362f1cc 2023-12-27 benni -V)
44 9362f1cc 2023-12-27 benni echo "got-archive-all-@VERSION@"
45 9362f1cc 2023-12-27 benni exit 1
46 9362f1cc 2023-12-27 benni ;;
47 9362f1cc 2023-12-27 benni --)
48 9362f1cc 2023-12-27 benni shift
49 9362f1cc 2023-12-27 benni break
50 9362f1cc 2023-12-27 benni ;;
51 9362f1cc 2023-12-27 benni esac
52 9362f1cc 2023-12-27 benni done
53 9362f1cc 2023-12-27 benni
54 9362f1cc 2023-12-27 benni [ $# -ne 1 ] && usage
55 9362f1cc 2023-12-27 benni
56 9362f1cc 2023-12-27 benni prefix=$1
57 9362f1cc 2023-12-27 benni
58 9362f1cc 2023-12-27 benni for repo in "$prefix"/*.git; do
59 9362f1cc 2023-12-27 benni [ -d "$repo/refs/tags" ] || continue
60 9362f1cc 2023-12-27 benni
61 1d063c9d 2023-12-27 benni name=$(basename "$repo" .git)
62 1d063c9d 2023-12-27 benni
63 9362f1cc 2023-12-27 benni for tag in "$repo"/refs/tags/*; do
64 9362f1cc 2023-12-27 benni tag=$(basename "$tag")
65 1d063c9d 2023-12-27 benni if [ ! -e "$outdir/$name-$tag.tgz" ] || [ "$force" = 1 ]; then
66 1d063c9d 2023-12-27 benni got-archive $flags -b "$tag" "$repo"
67 1d063c9d 2023-12-27 benni fi
68 9362f1cc 2023-12-27 benni done
69 9362f1cc 2023-12-27 benni done