wireshark/packaging/source/git-export-release.sh.in

66 lines
1.5 KiB
Bash
Raw Normal View History

#!/bin/bash
#
# Creates a release tarball directly from git
# Note that the tarball contents might not exactly match
# a particular git commit, particularly for untagged
# commits.
#
# An alternative approach would be to generate source tarballs
# using CPack. That would remove our dependency on git, but if
# Autotools is any indication it would require continuous
# maintenance.
#
# Copyright 2011 Balint Reczey <balint@balintreczey.hu>
#
# Wireshark - Network traffic analyzer
# By Gerald Combs <gerald@wireshark.org>
# Copyright 1998 Gerald Combs
#
# SPDX-License-Identifier: GPL-2.0-or-later
set -e -u -o pipefail
DESTDIR=.
while getopts "d:" OPTCHAR ; do
case $OPTCHAR in
d) DESTDIR=$OPTARG ;;
*) printf "Unknown option %s\n" "$OPTCHAR" ;;
esac
done
shift $(( OPTIND - 1 ))
# The remaining parameter, if set, is a package version such as 3.4.5
# or 3.4.5-67-gabcd4321
# By default the version from make-version.pl + CMake is used.
VERSION=@VERSION@
if test -n "${1-}"; then
VERSION="$1"
fi
if [ -f "${DESTDIR}/wireshark-$VERSION.tar.xz" ] ; then
echo "${DESTDIR}/wireshark-$VERSION.tar.xz exists."
exit 0
fi
STASH_POP=false
XZ_OPTS=
COMMIT="HEAD"
if ! git diff-index --quiet HEAD ; then
git stash --keep-index
COMMIT="stash@{0}"
STASH_POP=true
fi
echo "Creating ${DESTDIR}/wireshark-$VERSION.tar.xz"
echo . | xz --threads=0 > /dev/null 2>&1 && XZ_OPTS=--threads=0
git archive --prefix="wireshark-${VERSION}/" ${COMMIT} | xz $XZ_OPTS > "${DESTDIR}/wireshark-${VERSION}.tar.xz"
if $STASH_POP ; then
git stash pop
fi