49a345cc02
We were relying on "git archive" being able to create tar.gz files, but that ability isn't present in the git that comes with CentOS 6, so we use git to create a tar file and then compress it ourselves.
70 строки
1.1 KiB
Bash
Исполняемый файл
70 строки
1.1 KiB
Bash
Исполняемый файл
#!/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 --sign -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}
|
|
}
|
|
|
|
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
|