100 lines
2.0 KiB
Bash
Executable File
100 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# A very cheesy script to prep a release
|
|
#
|
|
set -e
|
|
|
|
PRODUCT=tripwire
|
|
VERSION=2.4.3.2
|
|
|
|
platform() {
|
|
case `uname` in
|
|
Darwin) echo 'osx' ;;
|
|
Linux) echo 'linux' ;;
|
|
FreeBSD) echo 'freebsd' ;;
|
|
*) echo 'unknown' ;;
|
|
esac
|
|
}
|
|
|
|
|
|
arch() {
|
|
case "$1" in
|
|
osx|freebsd|linux)
|
|
if file bin/tripwire | grep -q '64-bit'; then
|
|
echo 'x86_64'
|
|
else
|
|
echo 'x86'
|
|
fi
|
|
;;
|
|
*) echo 'unknown'
|
|
esac
|
|
}
|
|
|
|
PLATFORM=$(platform)
|
|
ARCH=$(arch $PLATFORM)
|
|
TYPE=bin
|
|
ROOT_DIR=$PRODUCT-$VERSION-$PLATFORM-$ARCH-$TYPE
|
|
EXCLUDES='.svn .git .gitignore'
|
|
|
|
|
|
|
|
EXCLUDES="$(for EXCLUDE in $EXCLUDES; do echo --exclude $EXCLUDE; done)"
|
|
|
|
SCRIPT_DIR="$(cd `dirname $0`; pwd)"
|
|
SCRIPT_DIR_DOTDOT="$(dirname "$SCRIPT_DIR")"
|
|
|
|
if ! test -x bin/tripwire* ; then
|
|
echo "tripwire not ready for release (bins not found in bin/ dir)" >&2
|
|
exit 1
|
|
fi
|
|
|
|
trap 'RESULT=$?; rm -rf "$SCRIPT_DIR_DOTDOT/releases/$ROOT_DIR"; exit $RESULT' INT QUIT EXIT TERM ERR
|
|
|
|
mkdir -p "$SCRIPT_DIR_DOTDOT/releases"
|
|
cd "$SCRIPT_DIR_DOTDOT/releases"
|
|
mkdir "$ROOT_DIR"
|
|
ln -s ../bin ../contrib ../man ../policy $ROOT_DIR/
|
|
ln -s ../COPYING ../ChangeLog ../Packaging ../ReadMe-2.4.3 ../MAINTAINERS $ROOT_DIR/
|
|
ln -s ../TRADEMARK ../COMMERCIAL ../install ../install-sh $ROOT_DIR/
|
|
|
|
EXTENSIONS=(tar.bz2 tar.gz tar.xz)
|
|
TAR_OPTIONS=(j z J)
|
|
|
|
sha1() {
|
|
sha1sum "$@" || shasum "$@"
|
|
}
|
|
|
|
sha512() {
|
|
sha512sum "$@" || shasum -a 512 "$@"
|
|
}
|
|
|
|
sign() {
|
|
if which gpg >/dev/null 2>&1; then
|
|
gpg --detach-sign --output "$1.asc" "$1"
|
|
else
|
|
echo "gpg unavailable, release is unsigned !!" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
for INDEX in 1 2 3; do
|
|
EXTENSION="${EXTENSIONS[$INDEX]}"
|
|
TAR_OPTIONS="${TAR_OPTIONS[$INDEX]}"
|
|
TARBALL="$ROOT_DIR.${EXTENSION}"
|
|
|
|
tar $EXCLUDES -${TAR_OPTIONS}hcf $TARBALL $ROOT_DIR
|
|
|
|
sha1 $TARBALL > $ROOT_DIR.sha1
|
|
sha1 bin/* >> $ROOT_DIR.sha1
|
|
|
|
sha512 $TARBALL > $ROOT_DIR.sha512
|
|
sha512 bin/* >> $ROOT_DIR.sha512
|
|
|
|
# sign the tarball
|
|
sign $TARBALL
|
|
|
|
# sign the hashes
|
|
sign $ROOT_DIR.sha1
|
|
sign $ROOT_DIR.sha512
|
|
done
|