author | Marco Steger <m.steger@student.tugraz.at> |
Sat, 25 Sep 2010 13:50:30 +0200 | |
branch | the isac plugin for jEdit |
changeset 38021 | ead4166083ad |
parent 37460 | b7a55231065a |
child 41803 | 178fdd4cca46 |
permissions | -rwxr-xr-x |
wenzelm@33923 | 1 |
#!/usr/bin/env bash |
wenzelm@33923 | 2 |
# |
wenzelm@33923 | 3 |
# makebundle -- re-package with add-on components |
wenzelm@33923 | 4 |
|
wenzelm@33923 | 5 |
## diagnostics |
wenzelm@33923 | 6 |
|
wenzelm@33923 | 7 |
PRG=$(basename "$0") |
wenzelm@33923 | 8 |
|
wenzelm@33923 | 9 |
function usage() |
wenzelm@33923 | 10 |
{ |
wenzelm@33923 | 11 |
echo |
wenzelm@37333 | 12 |
echo "Usage: $PRG ARCHIVE PLATFORM" |
wenzelm@33923 | 13 |
echo |
wenzelm@37333 | 14 |
echo " Re-package Isabelle source distribution with add-on components" |
wenzelm@37343 | 15 |
echo " and heap images" |
wenzelm@33923 | 16 |
echo |
wenzelm@33923 | 17 |
exit 1 |
wenzelm@33923 | 18 |
} |
wenzelm@33923 | 19 |
|
wenzelm@33923 | 20 |
function fail() |
wenzelm@33923 | 21 |
{ |
wenzelm@33923 | 22 |
echo "$1" >&2 |
wenzelm@33923 | 23 |
exit 2 |
wenzelm@33923 | 24 |
} |
wenzelm@33923 | 25 |
|
wenzelm@33923 | 26 |
|
wenzelm@37333 | 27 |
## implicit and explicit arguments |
wenzelm@33923 | 28 |
|
wenzelm@37333 | 29 |
TMP="/var/tmp/isabelle-makebundle$$" |
wenzelm@37333 | 30 |
mkdir "$TMP" || fail "Cannot create directory $TMP" |
wenzelm@37333 | 31 |
|
wenzelm@37333 | 32 |
[ "$#" -ne 2 ] && usage |
wenzelm@33923 | 33 |
|
wenzelm@33923 | 34 |
ARCHIVE="$1"; shift |
wenzelm@37333 | 35 |
PLATFORM="$1"; shift |
wenzelm@33923 | 36 |
|
wenzelm@37333 | 37 |
[ -f "$ARCHIVE" ] || fail "Bad source archive: $ARCHIVE" |
wenzelm@33923 | 38 |
|
wenzelm@33923 | 39 |
|
wenzelm@33923 | 40 |
## main |
wenzelm@33923 | 41 |
|
wenzelm@33923 | 42 |
ARCHIVE_DIR="$(cd $(dirname "$ARCHIVE"); echo "$PWD")" |
wenzelm@33923 | 43 |
ISABELLE_NAME="$(basename "$ARCHIVE" .tar.gz)" |
wenzelm@33923 | 44 |
ISABELLE_HOME="$TMP/$ISABELLE_NAME" |
wenzelm@33923 | 45 |
|
wenzelm@33923 | 46 |
tar -C "$TMP" -x -z -f "$ARCHIVE" |
wenzelm@33923 | 47 |
|
wenzelm@37333 | 48 |
|
wenzelm@33923 | 49 |
echo "#bundled components" >> "$ISABELLE_HOME/etc/components" |
wenzelm@33923 | 50 |
|
wenzelm@37333 | 51 |
for CONTRIB in "$ARCHIVE_DIR"/contrib/*.tar.gz |
wenzelm@33923 | 52 |
do |
wenzelm@37333 | 53 |
tar -C "$ISABELLE_HOME/contrib" -x -z -f "$CONTRIB" |
wenzelm@37333 | 54 |
NAME="$(basename "$CONTRIB" .tar.gz)" |
wenzelm@37333 | 55 |
[ -d "$ISABELLE_HOME/contrib/$NAME" ] || fail "Bad archive content $CONTRIB" |
wenzelm@33923 | 56 |
|
wenzelm@33923 | 57 |
if [ -e "$ISABELLE_HOME/contrib/$NAME/etc/settings" ]; then |
wenzelm@33923 | 58 |
echo "component $NAME" |
wenzelm@33923 | 59 |
echo "contrib/$NAME" >> "$ISABELLE_HOME/etc/components" |
wenzelm@33923 | 60 |
else |
wenzelm@33923 | 61 |
echo "package $NAME" |
wenzelm@33923 | 62 |
fi |
wenzelm@33923 | 63 |
done |
wenzelm@33923 | 64 |
|
wenzelm@37333 | 65 |
|
wenzelm@37343 | 66 |
HEAPS_ARCHIVE="$ARCHIVE_DIR/${ISABELLE_NAME}_heaps_${PLATFORM}.tar.gz" |
wenzelm@37343 | 67 |
[ -f "$HEAPS_ARCHIVE" ] || fail "Bad heaps archive: $HEAPS_ARCHIVE" |
wenzelm@37343 | 68 |
echo "heaps" |
wenzelm@37460 | 69 |
tar -C "$TMP" -x -z -f "$HEAPS_ARCHIVE" |
wenzelm@37333 | 70 |
|
wenzelm@37333 | 71 |
|
wenzelm@37333 | 72 |
BUNDLE_ARCHIVE="${ARCHIVE_DIR}/${ISABELLE_NAME}_bundle_${PLATFORM}.tar.gz" |
wenzelm@37333 | 73 |
|
wenzelm@37333 | 74 |
echo "$(basename "$BUNDLE_ARCHIVE")" |
wenzelm@37333 | 75 |
tar -C "$TMP" -c -z -f "$BUNDLE_ARCHIVE" Isabelle "$ISABELLE_NAME" |
wenzelm@33923 | 76 |
|
wenzelm@33923 | 77 |
|
wenzelm@33923 | 78 |
# clean up |
wenzelm@33923 | 79 |
cd /tmp |
wenzelm@33923 | 80 |
rm -rf "$TMP" |