Blob


1 #!/bin/sh
3 die() {
4 ec=$1
5 shift
6 echo "$@" >&2
7 exit "$ec"
8 }
10 usage() {
11 die 1 "Usage: got-archive-all [-fsV] [-o outdir] [-t tmpdir] prefix"
12 }
14 args=$(getopt fo:st:V $*)
15 [ $? -ne 0 ] && usage
17 set -- $args
19 force=0
20 outdir=.
21 flags=
22 while [ $# -ne 0 ]; do
23 case "$1" in
24 -f)
25 force=1
26 shift
27 ;;
28 -o)
29 outdir=$2
30 flags="$flags -o $2"
31 shift
32 shift
33 ;;
34 -s)
35 flags="$flags -s"
36 shift
37 ;;
38 -t)
39 flags="$flags -t $2"
40 shift
41 shift
42 ;;
43 -V)
44 echo "got-archive-all-@VERSION@"
45 exit 1
46 ;;
47 --)
48 shift
49 break
50 ;;
51 esac
52 done
54 [ $# -ne 1 ] && usage
56 prefix=$1
58 for repo in "$prefix"/*.git; do
59 [ -d "$repo/refs/tags" ] || continue
61 name=$(basename "$repo" .git)
63 for tag in "$repo"/refs/tags/*; do
64 tag=$(basename "$tag")
65 if [ ! -e "$outdir/$name-$tag.tgz" ] || [ "$force" = 1 ]; then
66 got-archive $flags -b "$tag" "$repo"
67 fi
68 done
69 done