| author | wenzelm | 
| Wed, 24 Aug 2011 13:38:07 +0200 | |
| changeset 44438 | 0fc38897248a | 
| parent 41650 | 0ec66d976f5b | 
| child 44807 | 44db3e309060 | 
| permissions | -rwxr-xr-x | 
| 33907 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 1 | #!/usr/bin/env bash | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 2 | # | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 3 | # makebundle -- re-package with add-on components | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 4 | |
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 5 | ## diagnostics | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 6 | |
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 7 | PRG=$(basename "$0") | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 8 | |
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 9 | function usage() | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 10 | {
 | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 11 | echo | 
| 37315 | 12 | echo "Usage: $PRG ARCHIVE PLATFORM" | 
| 33907 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 13 | echo | 
| 37315 | 14 | echo " Re-package Isabelle source distribution with add-on components" | 
| 37343 | 15 | echo " and heap images" | 
| 33907 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 16 | echo | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 17 | exit 1 | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 18 | } | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 19 | |
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 20 | function fail() | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 21 | {
 | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 22 | echo "$1" >&2 | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 23 | exit 2 | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 24 | } | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 25 | |
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 26 | |
| 37315 | 27 | ## implicit and explicit arguments | 
| 33907 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 28 | |
| 37315 | 29 | TMP="/var/tmp/isabelle-makebundle$$" | 
| 30 | mkdir "$TMP" || fail "Cannot create directory $TMP" | |
| 31 | ||
| 32 | [ "$#" -ne 2 ] && usage | |
| 33907 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 33 | |
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 34 | ARCHIVE="$1"; shift | 
| 37315 | 35 | PLATFORM="$1"; shift | 
| 33907 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 36 | |
| 37315 | 37 | [ -f "$ARCHIVE" ] || fail "Bad source archive: $ARCHIVE" | 
| 33907 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 38 | |
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 39 | |
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 40 | ## main | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 41 | |
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 42 | ARCHIVE_DIR="$(cd $(dirname "$ARCHIVE"); echo "$PWD")" | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 43 | ISABELLE_NAME="$(basename "$ARCHIVE" .tar.gz)" | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 44 | ISABELLE_HOME="$TMP/$ISABELLE_NAME" | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 45 | |
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 46 | tar -C "$TMP" -x -z -f "$ARCHIVE" | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 47 | |
| 37315 | 48 | |
| 33907 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 49 | echo "#bundled components" >> "$ISABELLE_HOME/etc/components" | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 50 | |
| 37315 | 51 | for CONTRIB in "$ARCHIVE_DIR"/contrib/*.tar.gz | 
| 33907 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 52 | do | 
| 37315 | 53 | tar -C "$ISABELLE_HOME/contrib" -x -z -f "$CONTRIB" | 
| 54 | NAME="$(basename "$CONTRIB" .tar.gz)" | |
| 55 | [ -d "$ISABELLE_HOME/contrib/$NAME" ] || fail "Bad archive content $CONTRIB" | |
| 33907 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 56 | |
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 57 | if [ -e "$ISABELLE_HOME/contrib/$NAME/etc/settings" ]; then | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 58 | echo "component $NAME" | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 59 | echo "contrib/$NAME" >> "$ISABELLE_HOME/etc/components" | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 60 | else | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 61 | echo "package $NAME" | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 62 | fi | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 63 | done | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 64 | |
| 37315 | 65 | |
| 37343 | 66 | HEAPS_ARCHIVE="$ARCHIVE_DIR/${ISABELLE_NAME}_heaps_${PLATFORM}.tar.gz"
 | 
| 67 | [ -f "$HEAPS_ARCHIVE" ] || fail "Bad heaps archive: $HEAPS_ARCHIVE" | |
| 68 | echo "heaps" | |
| 37357 | 69 | tar -C "$TMP" -x -z -f "$HEAPS_ARCHIVE" | 
| 37315 | 70 | |
| 71 | ||
| 41650 
0ec66d976f5b
delete .elc files unconditionally -- they cause too many incompatibilities;
 wenzelm parents: 
41627diff
changeset | 72 | ( | 
| 
0ec66d976f5b
delete .elc files unconditionally -- they cause too many incompatibilities;
 wenzelm parents: 
41627diff
changeset | 73 | cd "$TMP/$ISABELLE_NAME/contrib/ProofGeneral" | 
| 
0ec66d976f5b
delete .elc files unconditionally -- they cause too many incompatibilities;
 wenzelm parents: 
41627diff
changeset | 74 |   find . -name "*.elc" -exec rm {} ";"
 | 
| 
0ec66d976f5b
delete .elc files unconditionally -- they cause too many incompatibilities;
 wenzelm parents: 
41627diff
changeset | 75 | ) | 
| 
0ec66d976f5b
delete .elc files unconditionally -- they cause too many incompatibilities;
 wenzelm parents: 
41627diff
changeset | 76 | |
| 41627 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
 wenzelm parents: 
41611diff
changeset | 77 | case "$PLATFORM" in | 
| 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
 wenzelm parents: 
41611diff
changeset | 78 | x86-cygwin) | 
| 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
 wenzelm parents: 
41611diff
changeset | 79 | rm "$TMP/$ISABELLE_NAME/contrib/ProofGeneral" | 
| 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
 wenzelm parents: 
41611diff
changeset | 80 | ln -s ProofGeneral-3.7.1.1 "$TMP/$ISABELLE_NAME/contrib/ProofGeneral" | 
| 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
 wenzelm parents: 
41611diff
changeset | 81 | ;; | 
| 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
 wenzelm parents: 
41611diff
changeset | 82 | *) | 
| 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
 wenzelm parents: 
41611diff
changeset | 83 | ;; | 
| 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
 wenzelm parents: 
41611diff
changeset | 84 | esac | 
| 41611 
f23ce44fbaec
Cygwin: back to ProofGeneral-3.7.1.1 with XEmacs, since PG 4.x with GNU Emacs 23 is painfully slow;
 wenzelm parents: 
41555diff
changeset | 85 | |
| 37315 | 86 | BUNDLE_ARCHIVE="${ARCHIVE_DIR}/${ISABELLE_NAME}_bundle_${PLATFORM}.tar.gz"
 | 
| 87 | ||
| 88 | echo "$(basename "$BUNDLE_ARCHIVE")" | |
| 41555 | 89 | tar -C "$TMP" -c -z -f "$BUNDLE_ARCHIVE" "$ISABELLE_NAME" | 
| 33907 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 90 | |
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 91 | |
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 92 | # clean up | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 93 | cd /tmp | 
| 
473f859e1c29
re-package Isabelle distribution with add-on components;
 wenzelm parents: diff
changeset | 94 | rm -rf "$TMP" |