| author | haftmann | 
| Thu, 27 Mar 2008 19:04:37 +0100 | |
| changeset 26443 | cae9fa186541 | 
| parent 26215 | 94d32a7cd0fb | 
| child 29145 | b1c6f4563df7 | 
| permissions | -rwxr-xr-x | 
| 
26215
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
1  | 
#!/usr/bin/env bash  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
2  | 
#  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
3  | 
# $Id$  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
4  | 
# Author: Markus Wenzel, TU Muenchen  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
5  | 
#  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
6  | 
# Poly/ML 4.x startup script.  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
7  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
8  | 
export -n INFILE OUTFILE COPYDB COMPRESS MLTEXT TERMINATE NOWRITE  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
9  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
10  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
11  | 
## diagnostics  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
12  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
13  | 
function fail_out()  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
14  | 
{
 | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
15  | 
echo "Unable to create output heap file: \"$OUTFILE\"" >&2  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
16  | 
exit 2  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
17  | 
}  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
18  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
19  | 
function check_file()  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
20  | 
{
 | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
21  | 
if [ ! -f "$1" ]; then  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
22  | 
echo "Unable to locate $1" >&2  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
23  | 
echo "Please check your ML system settings!" >&2  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
24  | 
exit 2  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
25  | 
fi  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
26  | 
}  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
27  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
28  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
29  | 
## Poly/ML executable and database  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
30  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
31  | 
ML_DBASE_PREFIX=""  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
32  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
33  | 
POLY="$ML_HOME/poly"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
34  | 
check_file "$POLY"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
35  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
36  | 
if [ -z "$ML_DBASE" ]; then  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
37  | 
if [ ! -e "$ML_HOME/ML_dbase" -a "$(basename "$ML_HOME")" = bin ]; then  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
38  | 
ML_DBASE_HOME="$(cd "$ML_HOME"; cd "$(pwd -P)"; cd ../lib/poly; pwd)"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
39  | 
else  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
40  | 
ML_DBASE_HOME="$ML_HOME"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
41  | 
fi  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
42  | 
if [ -z "$COPYDB" ]; then  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
43  | 
ML_DBASE_PREFIX="$ML_DBASE_HOME/"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
44  | 
ML_DBASE="ML_dbase"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
45  | 
else  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
46  | 
ML_DBASE="$ML_DBASE_HOME/ML_dbase"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
47  | 
fi  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
48  | 
export POLYPATH="$ML_DBASE_HOME"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
49  | 
else  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
50  | 
export POLYPATH="$(dirname "$ML_DBASE")"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
51  | 
fi  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
52  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
53  | 
DISCGARB_OPTIONS="-d -c"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
54  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
55  | 
EXIT="fun exit 0 = (OS.Process.exit OS.Process.success): unit | exit _ = OS.Process.exit OS.Process.failure;"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
56  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
57  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
58  | 
## prepare databases  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
59  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
60  | 
if [ -z "$INFILE" ]; then  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
61  | 
check_file "$ML_DBASE_PREFIX$ML_DBASE"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
62  | 
INFILE="$ML_DBASE"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
63  | 
MLTEXT="val use = PolyML.use; $EXIT $MLTEXT"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
64  | 
DISCGARB_OPTIONS="$DISCGARB_OPTIONS -S max"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
65  | 
else  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
66  | 
COPYDB=true  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
67  | 
fi  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
68  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
69  | 
if [ -z "$OUTFILE" ]; then  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
70  | 
DB="$INFILE"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
71  | 
ML_OPTIONS="-r $ML_OPTIONS"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
72  | 
elif [ "$INFILE" -ef "$OUTFILE" ]; then  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
73  | 
DB="$INFILE"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
74  | 
elif [ -n "$COPYDB" ]; then  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
75  | 
  [ -f "$OUTFILE" ] && { rm -f "$OUTFILE" || fail_out; }
 | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
76  | 
cp "$INFILE" "$OUTFILE" || fail_out  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
77  | 
chmod +w "$OUTFILE" || fail_out  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
78  | 
DB="$OUTFILE"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
79  | 
else  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
80  | 
  [ -f "$OUTFILE" ] && { rm -f "$OUTFILE" || fail_out; }
 | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
81  | 
echo "PolyML.make_database \"$OUTFILE\"; PolyML.quit();" | "$POLY" -r "$INFILE"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
82  | 
[ -f "$OUTFILE" ] || fail_out  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
83  | 
DB="$OUTFILE"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
84  | 
fi  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
85  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
86  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
87  | 
## run it!  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
88  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
89  | 
if [ -z "$TERMINATE" ]; then  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
90  | 
FEEDER_OPTS=""  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
91  | 
else  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
92  | 
FEEDER_OPTS="-q"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
93  | 
fi  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
94  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
95  | 
DB_INFO="$(ls -l "$DB" 2>/dev/null)"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
96  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
97  | 
"$ISABELLE_HOME/lib/scripts/feeder" -p -h "$MLTEXT" $FEEDER_OPTS | {
 | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
98  | 
read FPID; "$POLY" $ML_OPTIONS "$DB";  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
99  | 
RC="$?"; kill -HUP "$FPID"; exit "$RC"; }  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
100  | 
RC="$?"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
101  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
102  | 
NEW_DB_INFO="$(ls -l "$DB" 2>/dev/null)"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
103  | 
[ -n "$OUTFILE" -a -n "$COMPRESS" -a "$DB_INFO" != "$NEW_DB_INFO" ] && \  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
104  | 
"$POLY" $DISCGARB_OPTIONS "$OUTFILE"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
105  | 
[ -n "$OUTFILE" -a -f "$OUTFILE" -a -n "$NOWRITE" ] && chmod -w "$OUTFILE"  | 
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
106  | 
|
| 
 
94d32a7cd0fb
rearrangements to make latest Poly/ML the default, not old 4.x;
 
wenzelm 
parents:  
diff
changeset
 | 
107  | 
exit "$RC"  |