1#!/bin/bash 2 3EXEC_FILES_LIST=tools/mkrelease/executable_files 4export SPLASH2_PATH=/home/netos/projects/barrelfish/splash2 5 6if [ ! \( -f README -a -d hake -a -d .hg -a -r $EXEC_FILES_LIST \) ]; then 7 echo "This script must be run in the root of a Barrelfish tree" > /dev/stderr 8 exit 1 9fi 10 11HGDATE=$(hg log -l 1 --template "{date|shortdate}\n") || exit 12DATE=$(echo $HGDATE | tr -d -) || exit 13TARFILE=barrelfish-$DATE.tar.bz2 14 15if [ -e $TARFILE ]; then 16 echo "Error: $TARFILE already exists" > /dev/stderr 17 exit 1 18fi 19 20TMPDIR=$(mktemp -d) || exit 21DESTDIR=$TMPDIR/barrelfish-$DATE 22 23function die() 24{ 25 echo "Aborted." > /dev/stderr 26 rm -rf $TMPDIR 27 exit 3 28} 29 30echo "Creating hg archive to $DESTDIR..." 31hg archive -t files $DESTDIR || die 32 33echo "Removing HG files..." 34rm $DESTDIR/.hgtags $DESTDIR/.hgignore $DESTDIR/.hg_archival.txt || die 35 36echo "Looking for executable files that shouldn't be..." 37BADPERMS=$(find $DESTDIR -type f -perm /ugo+x \ 38 | cut -c $((${#DESTDIR} + 2))- \ 39 | grep -vFf $EXEC_FILES_LIST) 40[ $? -gt 1 ] && die 41if [ -n "$BADPERMS" ]; then 42 echo "Error: the following files are executable, but not listed in $EXEC_FILES_LIST:" > /dev/stderr 43 echo "$BADPERMS" > /dev/stderr 44 echo "Please fix this before continuing." > /dev/stderr 45 rm -rf $TMPDIR 46 exit 2 47fi 48 49echo "Generating SPLASH2 patch..." 50( 51 cd $DESTDIR/usr/splash2 52 ./runme.sh makepatch 53) || die 54 55echo "Removing ETH-private files..." 56rm -r \ 57 $DESTDIR/doc/005-scc/plots/rcce_bench/rcce_runs-v2-cut.xls \ 58 $DESTDIR/usr/skb/data \ 59 || die 60 61echo "Creating tarball..." 62tar -cj -C $TMPDIR -f $TARFILE barrelfish-$DATE || die 63 64echo "Cleaning up..." 65rm -rf $TMPDIR 66 67echo "All done! Release archive is in $TARFILE" 68