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