aos/tools/mkrelease/mkrelease.sh
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

68 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
EXEC_FILES_LIST=tools/mkrelease/executable_files
export SPLASH2_PATH=/home/netos/projects/barrelfish/splash2
if [ ! \( -f README -a -d hake -a -d .hg -a -r $EXEC_FILES_LIST \) ]; then
echo "This script must be run in the root of a Barrelfish tree" > /dev/stderr
exit 1
fi
HGDATE=$(hg log -l 1 --template "{date|shortdate}\n") || exit
DATE=$(echo $HGDATE | tr -d -) || exit
TARFILE=barrelfish-$DATE.tar.bz2
if [ -e $TARFILE ]; then
echo "Error: $TARFILE already exists" > /dev/stderr
exit 1
fi
TMPDIR=$(mktemp -d) || exit
DESTDIR=$TMPDIR/barrelfish-$DATE
function die()
{
echo "Aborted." > /dev/stderr
rm -rf $TMPDIR
exit 3
}
echo "Creating hg archive to $DESTDIR..."
hg archive -t files $DESTDIR || die
echo "Removing HG files..."
rm $DESTDIR/.hgtags $DESTDIR/.hgignore $DESTDIR/.hg_archival.txt || die
echo "Looking for executable files that shouldn't be..."
BADPERMS=$(find $DESTDIR -type f -perm /ugo+x \
| cut -c $((${#DESTDIR} + 2))- \
| grep -vFf $EXEC_FILES_LIST)
[ $? -gt 1 ] && die
if [ -n "$BADPERMS" ]; then
echo "Error: the following files are executable, but not listed in $EXEC_FILES_LIST:" > /dev/stderr
echo "$BADPERMS" > /dev/stderr
echo "Please fix this before continuing." > /dev/stderr
rm -rf $TMPDIR
exit 2
fi
echo "Generating SPLASH2 patch..."
(
cd $DESTDIR/usr/splash2
./runme.sh makepatch
) || die
echo "Removing ETH-private files..."
rm -r \
$DESTDIR/doc/005-scc/plots/rcce_bench/rcce_runs-v2-cut.xls \
$DESTDIR/usr/skb/data \
|| die
echo "Creating tarball..."
tar -cj -C $TMPDIR -f $TARFILE barrelfish-$DATE || die
echo "Cleaning up..."
rm -rf $TMPDIR
echo "All done! Release archive is in $TARFILE"