| author | huffman | 
| Fri, 09 Sep 2011 09:31:04 -0700 | |
| changeset 44857 | 73d5b722c4b4 | 
| parent 44807 | 44db3e309060 | 
| child 44951 | 3aa3aeb4980f | 
| 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: 
41627 
diff
changeset
 | 
72  | 
(  | 
| 
 
0ec66d976f5b
delete .elc files unconditionally -- they cause too many incompatibilities;
 
wenzelm 
parents: 
41627 
diff
changeset
 | 
73  | 
cd "$TMP/$ISABELLE_NAME/contrib/ProofGeneral"  | 
| 
 
0ec66d976f5b
delete .elc files unconditionally -- they cause too many incompatibilities;
 
wenzelm 
parents: 
41627 
diff
changeset
 | 
74  | 
  find . -name "*.elc" -exec rm {} ";"
 | 
| 
 
0ec66d976f5b
delete .elc files unconditionally -- they cause too many incompatibilities;
 
wenzelm 
parents: 
41627 
diff
changeset
 | 
75  | 
)  | 
| 
 
0ec66d976f5b
delete .elc files unconditionally -- they cause too many incompatibilities;
 
wenzelm 
parents: 
41627 
diff
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: 
41611 
diff
changeset
 | 
77  | 
case "$PLATFORM" in  | 
| 44807 | 78  | 
*-darwin)  | 
79  | 
perl -pi -e "s,lookAndFeel=.*,lookAndFeel=com.apple.laf.AquaLookAndFeel,g;" \  | 
|
80  | 
"$TMP/$ISABELLE_NAME/src/Tools/jEdit/dist/properties/jEdit.props"  | 
|
81  | 
;;  | 
|
82  | 
*-cygwin)  | 
|
83  | 
perl -pi -e "s,lookAndFeel=.*,lookAndFeel=com.sun.java.swing.plaf.windows.WindowsLookAndFeel,g;" \  | 
|
84  | 
"$TMP/$ISABELLE_NAME/src/Tools/jEdit/dist/properties/jEdit.props"  | 
|
| 
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: 
41611 
diff
changeset
 | 
85  | 
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: 
41611 
diff
changeset
 | 
86  | 
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: 
41611 
diff
changeset
 | 
87  | 
;;  | 
| 
 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
 
wenzelm 
parents: 
41611 
diff
changeset
 | 
88  | 
*)  | 
| 
 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
 
wenzelm 
parents: 
41611 
diff
changeset
 | 
89  | 
;;  | 
| 
 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
 
wenzelm 
parents: 
41611 
diff
changeset
 | 
90  | 
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: 
41555 
diff
changeset
 | 
91  | 
|
| 37315 | 92  | 
BUNDLE_ARCHIVE="${ARCHIVE_DIR}/${ISABELLE_NAME}_bundle_${PLATFORM}.tar.gz"
 | 
93  | 
||
94  | 
echo "$(basename "$BUNDLE_ARCHIVE")"  | 
|
| 41555 | 95  | 
tar -C "$TMP" -c -z -f "$BUNDLE_ARCHIVE" "$ISABELLE_NAME"  | 
| 
33907
 
473f859e1c29
re-package Isabelle distribution with add-on components;
 
wenzelm 
parents:  
diff
changeset
 | 
96  | 
|
| 
 
473f859e1c29
re-package Isabelle distribution with add-on components;
 
wenzelm 
parents:  
diff
changeset
 | 
97  | 
|
| 
 
473f859e1c29
re-package Isabelle distribution with add-on components;
 
wenzelm 
parents:  
diff
changeset
 | 
98  | 
# clean up  | 
| 
 
473f859e1c29
re-package Isabelle distribution with add-on components;
 
wenzelm 
parents:  
diff
changeset
 | 
99  | 
cd /tmp  | 
| 
 
473f859e1c29
re-package Isabelle distribution with add-on components;
 
wenzelm 
parents:  
diff
changeset
 | 
100  | 
rm -rf "$TMP"  |