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