diff options
Diffstat (limited to 'scripts/create_release_tarball.sh')
-rwxr-xr-x | scripts/create_release_tarball.sh | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/scripts/create_release_tarball.sh b/scripts/create_release_tarball.sh new file mode 100755 index 0000000..2ad9ca7 --- /dev/null +++ b/scripts/create_release_tarball.sh @@ -0,0 +1,65 @@ +#!/bin/bash -e + +function run { + "$@" + RES=$? + if [[ $RES -ne 0 ]]; + then + echo "[ERROR] $@ returned $RES" >&2 + exit 1 + fi +} + +if [ -z ${TAG:-} ];then + echo "No TAG set - trying to detect" + TAG=$(git describe --tags) + echo "Is the TAG ${TAG} ok (YES|NO)?" + read answ + case "$answ" in + YES): + ;; + *) + echo 'stopping here' + exit 1 + esac +fi + +function create_hash { + NAME=$1 + run md5sum ${NAME} > ${NAME}.md5 + run sha1sum ${NAME} > ${NAME}.sha1 + run sha256sum ${NAME} > ${NAME}.sha256 + run sha512sum ${NAME} > ${NAME}.sha512 +} + +function create_tar { + ARGS=$1 + EXT=$2 + TAG=$3 + + NAME=freerdp-${TAG}${EXT} + run tar $ARGS ${NAME} freerdp-${TAG} + create_hash ${NAME} +} + +TMPDIR=$(mktemp -d -t release-${TAG}-XXXXXXXXXX) + +run git archive --prefix=freerdp-${TAG}/ --format=tar.gz -o ${TMPDIR}/freerdp-${TAG}.tar.gz ${TAG} +run tar xzvf ${TMPDIR}/freerdp-${TAG}.tar.gz -C ${TMPDIR} +run echo ${TAG} > ${TMPDIR}/freerdp-${TAG}/.source_version + +pushd . +cd $TMPDIR +create_tar czf .tar.gz ${TAG} +create_tar cvjSf .tar.bz2 ${TAG} +create_tar cfJ .tar.xz ${TAG} + +ZIPNAME=freerdp-${TAG}.zip +run zip -r ${ZIPNAME} freerdp-${TAG} +create_hash ${ZIPNAME} +popd + +run mv ${TMPDIR}/freerdp-${TAG}.tar* . +run mv ${TMPDIR}/freerdp-${TAG}.zip* . +run rm -rf ${TMPDIR} +exit 0 |