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
 |