#!/bin/sh

proj="iperf"

if [ "x$2" != "x" ]; then
tag=$2
else
tag=`awk '/IPERF_VERSION / {
  gsub(/"/, "", $3);
  print $3 }' src/version.h`
fi

dirname=`echo $tag $proj | awk '{
  gsub(/-ALPHA/, "a", $1);
  gsub(/-BETA/, "b", $1);
  gsub(/-RELEASE/, "", $1);
  print $2"-"$1 }'`

# echo tag $tag
# echo dirname $dirname

do_tag ()
{
    git tag -s -m "tagging $tag" $tag
}

do_tar ()
{
    tarball=${dirname}.tar.gz
    rm -f ${tarball}
    git archive --format=tar --prefix ${dirname}/ ${tag} | gzip -9 > ${tarball}

    # Compute SHA256 hash
    case `uname -s` in
	FreeBSD) sha=sha256 ;;
	Linux) sha=sha256sum ;;
	Darwin) sha="shasum -a 256" ;;
	*) sha=echo ;;
    esac
    ${sha} ${tarball} | tee ${tarball}.sha256
}

usage ()
{
    cat <<EOF
$0: tag|tar

   tag  -- create a tag
   tar  -- create a tarball from a tag

General use is to do:

./$0 tag
./$0 tar

An optional argument may be specified to both the tag and tar
subcommands to explicitly specify a tag string.  If not specified, the
contents of src/version.h are used.

EOF
}

case $1 in
    tag) do_tag ;;
    tar) do_tar ;;
    *) echo "unknown command: $1"; usage ;;
esac

exit
