1#!/bin/sh
2
3proj="iperf"
4
5if [ "x$2" != "x" ]; then
6tag=$2
7else
8tag=`awk '/IPERF_VERSION / {
9  gsub(/"/, "", $3);
10  print $3 }' src/version.h`
11fi
12
13dirname=`echo $tag $proj | awk '{
14  gsub(/-ALPHA/, "a", $1);
15  gsub(/-BETA/, "b", $1);
16  gsub(/-RELEASE/, "", $1);
17  print $2"-"$1 }'`
18
19# echo tag $tag
20# echo dirname $dirname
21
22do_tag ()
23{
24    git tag -s -m "tagging $tag" $tag
25}
26
27do_tar ()
28{
29    tarball=${dirname}.tar.gz
30    rm -f ${tarball}
31    git archive --format=tar --prefix ${dirname}/ ${tag} | gzip -9 > ${tarball}
32
33    # Compute SHA256 hash
34    case `uname -s` in
35	FreeBSD) sha=sha256 ;;
36	Linux) sha=sha256sum ;;
37	Darwin) sha="shasum -a 256" ;;
38	*) sha=echo ;;
39    esac
40    ${sha} ${tarball} | tee ${tarball}.sha256
41}
42
43usage ()
44{
45    cat <<EOF
46$0: tag|tar
47
48   tag  -- create a tag
49   tar  -- create a tarball from a tag
50
51General use is to do:
52
53./$0 tag
54./$0 tar
55
56An optional argument may be specified to both the tag and tar
57subcommands to explicitly specify a tag string.  If not specified, the
58contents of src/version.h are used.
59
60EOF
61}
62
63case $1 in
64    tag) do_tag ;;
65    tar) do_tar ;;
66    *) echo "unknown command: $1"; usage ;;
67esac
68
69exit
70