source: gli/trunk/gems.sh@ 17252

Last change on this file since 17252 was 16546, checked in by ak19, 16 years ago

gems.sh script updated to launch both GEMS for GS3 as well as GS2. Replaces gems4gs3.sh.

  • Property svn:executable set to *
File size: 12.4 KB
Line 
1#!/bin/sh
2
3# Function that, when given gsdlpath as parameter, will return the
4# version of greenstone that is to run (2 or 3). If things are not,
5# this program will exit here.
6get_version() {
7 # first parameter is value of gsdlpath
8 if [ -f "${1}/gs3-setup.sh" ]; then
9 return 3
10 elif [ -f "${1}/setup.bash" ]; then
11 return 2
12 else
13 echo "Error: can't determine which Greenstone version is being run."
14 exit 1
15 fi
16}
17
18# Function that is passed the following paramters (in order):
19# - the gsdlpath (GS3 home, GS2 home or gs2build for GS3),
20# - the version of greenstone that's running, and
21# - the language GLI is set to
22# and checks the installation.
23# If things are not right, this program will exit here.
24check_installation() {
25# Check that the Greenstone installation looks OK
26 if [ "$3" = "es" ]; then
27 echo "Revisando GSDL$2: $1"
28 elif [ "$3" = "fr" ]; then
29 echo "Vérification de GSDL$2: $1"
30 elif [ "$3" = "ru" ]; then
31 echo "ðÒÏ×ÅÒËÁ GSDL$2: $1"
32 else
33 echo "Checking GSDL$2: $1"
34 fi
35 # even if we are only checking for gs2build (gsdl2path), we still
36 # need the file setup.bash to exist in the following condition:
37 if [ ! -f "${1}/gs3-setup.sh" -a ! -f "${1}/setup.bash" ] ; then
38 echo
39 if [ "$3" = "es" ]; then
40 echo "No se pudo encontrar la instalación de Greenstone $2 o está incompleta."
41 echo "Trate de reinstalar Greenstone $2 y a continuación ejecute nuevamente"
42 echo "este guión."
43 elif [ "$3" = "fr" ]; then
44 echo "L'installation de Greenstone $2 est introuvable ou incomplète."
45 echo "Essayez de réinstaller Greenstone $2 et exécutez ce script à nouveau."
46 elif [ "$3" = "ru" ]; then
47 echo "éÎÓÔÁÌÌÑÃÉÑ Greenstone $_version ÎÅ ÂÙÌÁ ÎÁÊÄÅÎÁ ÉÌÉ ÏÎÁ ÎÅÐÏÌÎÁ."
48 echo "ðÏÐÒÏÂÕÊÔÅ ÐÏ×ÔÏÒÎÏ ÕÓÔÁÎÏ×ÉÔØ Greenstone $2, Á ÚÁÔÅÍ ××ÅÓÔÉ ÜÔÏÔ ÓËÒÉÐÔ ÓÎÏ×Á."
49 else
50 echo "The Greenstone $2 installation could not be found, or is incomplete."
51 echo "Try reinstalling Greenstone $2 then running this script again."
52 fi
53 exit 1
54 fi
55}
56
57glilang=en
58
59if [ "$glilang" = "es" ]; then
60 PROGNAME="Editar conjuntos de metadatos"
61elif [ "$glilang" = "fr" ]; then
62 PROGNAME="Editer les jeux de méta-données"
63elif [ "$glilang" = "ru" ]; then
64 PROGNAME="òÅÄÁËÔÉÒÏ×ÁÔØ ÎÁÂÏÒÙ ÍÅÔÁÄÁÎÎÙÈ"
65else
66 PROGNAME="Greenstone Editor for Metadata Sets"
67fi
68
69PROGABBR="GEMS"
70
71PROGNAME_EN="Greenstone Editor for Metadata Sets"
72
73
74echo
75if [ "$glilang" = "es" ]; then
76 echo "$PROGNAME ($PROGNAME_EN - $PROGABBR)"
77 echo "Copyright (C) 2006, New Zealand Digital Library Project, University Of Waikato"
78 echo "GEMS NO INCLUYE ABSOLUTAMENTE NINGUNA GARANTÍA."
79 echo "Para mayor información vea los términos de la licencia en LICENSE.txt"
80 echo "Este es un software abierto, por lo que lo invitamos a que lo distribuya de forma gratuita"
81elif [ "$glilang" = "fr" ]; then
82 echo "$PROGNAME ($PROGNAME_EN - $PROGABBR)"
83 echo "Copyright (C) 2006, New Zealand Digital Library Project, University Of Waikato"
84 echo "GEMS est fourni sans AUCUNE GARANTIE; pour des détails, voir LICENSE.txt"
85 echo "Ceci est un logiciel libre, et vous êtes invité à le redistribuer"
86elif [ "$glilang" = "ru" ]; then
87 echo "$PROGNAME ($PROGNAME_EN - $PROGABBR)"
88 echo "Copyright (C) 2006, New Zealand Digital Library Project, University Of Waikato"
89 echo "âéç ÎÅ ÄÁÅÔ áâóïìàôîï îéëáëéè çáòáîôéê; ÄÅÔÁÌÉ ÓÍ. × ÔÅËÓÔÅ LICENSE.TXT"
90 echo "üÔÏ - Ó×ÏÂÏÄÎÏ ÒÁÓÐÒÏÓÔÒÁÎÑÅÍÏÅ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ É ÷Ù ÍÏÖÅÔÅ ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÅÇÏ"
91else
92 echo "$PROGNAME ($PROGABBR)"
93 echo "Copyright (C) 2006, New Zealand Digital Library Project, University Of Waikato"
94 echo "GEMS comes with ABSOLUTELY NO WARRANTY; for details see LICENSE.txt"
95 echo "This is free software, and you are welcome to redistribute it"
96fi
97echo
98
99## -------- Run the Greenstone Editor for Metadata Sets --------
100
101# This script must be run from within the directory in which it lives
102thisdir=`pwd`
103if [ ! -f "${thisdir}/gems.sh" ]; then
104 if [ "$glilang" = "es" ]; then
105 echo "Este guión deberá ejecutarse desde el directorio en el que reside."
106 elif [ "$glilang" = "fr" ]; then
107 echo "Ce script doit être exécuté à partir du répertoire dans lequel il se trouve."
108 elif [ "$glilang" = "ru" ]; then
109 echo "üÔÏÔ ÓËÒÉÐÔ ÄÏÌÖÅÎ ÂÙÔØ ×ÚÑÔ ÉÚ ÄÉÒÅËÔÏÒÉÉ, × ËÏÔÏÒÏÊ ÏÎ ÒÁÓÐÏÌÏÖÅÎ"
110 else
111 echo "This script must be run from the directory in which it resides."
112 fi
113 exit 1
114fi
115
116
117## ---- Determine GSDLHOME ----
118## gsdlpath can be either Greenstone 3 or Greenstone 2
119gsdlpath=
120# Some users may set the above line manually
121
122
123# This variable is set automatically:
124_version=
125if [ "x$gsdlpath" != "x" ]; then
126 get_version $gsdlpath
127 _version=$?
128# otherwise $gsdlpath is not yet set
129else
130 # Check the environment variable first
131 # Check whether environment variables for both GS2 and GS3 are set
132 # and if so, warn the user that we have defaulted to GS3
133 if [ "x$GSDLHOME" != "x" -a "x$GSDL3SRCHOME" != "x" ]; then
134 # _version not set, but both env vars set, so default to 3
135 _version=3
136 gsdlpath=$GSDL3SRCHOME
137 echo "Both Greenstone 2 and Greenstone 3 environments are set."
138 echo "It is assumed you want to run Greenstone 3."
139 echo "If you want to run Greenstone 2, please unset the"
140 echo "environment variable GSDL3SRCHOME before running GLI."
141 echo ""
142 elif [ "x$GSDL3SRCHOME" != "x" ]; then
143 echo "Only gsdl3srchome set"
144 gsdlpath=$GSDL3SRCHOME
145 _version=3
146 echo "$gsdlpath"
147 elif [ "x$GSDLHOME" != "x" ]; then
148 gsdlpath=$GSDLHOME
149 _version=2
150 # If it is not set, assume that the GLI is installed as a subdirectory of Greenstone
151 else
152 gsdlpath=`(cd .. && pwd)`
153 # Still need to find what version we are running:
154 # GS3 main directory contains file gs3-setup.sh, GS2 only setup.bash
155 get_version $gsdlpath
156 _version=$?
157 fi
158fi
159
160echo "Greenstone version found: $_version"
161
162# Check that the main Greenstone installation for the version we're running looks OK
163check_installation $gsdlpath $_version $glilang
164
165
166# Need to source the correct setup file depending on whether we are running
167# gs3 or gs2
168# If we're running version GS2
169if [ "$_version" -eq 2 ]; then
170 # Setup Greenstone 2, unless it has already been done
171 if [ "x$GSDLHOME" = "x" ]; then
172 cd "$gsdlpath"
173 . setup.bash
174 cd "$thisdir"
175 fi
176# else, if we're running GS3
177elif [ "$_version" -eq 3 ]; then
178 # Setup Greenstone 3, unless it has already been done
179 if [ "x$GSDL3HOME" = "x" -o "x$GSDL3SRCHOME" = "x" ]; then
180 cd "$gsdlpath"
181 . gs3-setup.sh
182 cd "$thisdir"
183 fi
184
185 ## if Greenstone version 3 is running, we want to set gsdl2path
186 ## ---- Determine GSDLHOME ----
187 ## may be already set, or manually entered here.
188 gsdl2path=
189
190 # Some users may set the above line manually
191 if [ "x$gsdl2path" = "x" ]; then
192 # Check the environment variable first
193 if [ "x$GSDLHOME" != "x" ]; then
194 echo "GSDLHOME environment variable is set to $GSDLHOME."
195 echo "Will use this to find build scripts."
196 gsdl2path=$GSDLHOME
197 # If it is not set, assume that the gs2build subdirectory of Greenstone 3 exists
198 else
199 gsdl2path=$GSDL3SRCHOME/gs2build
200 fi
201 fi
202 # Check that Greenstone 3's Greenstone 2 stuff looks OK (in gs2build)
203 check_installation $gsdl2path "" $glilang
204
205 # Setup Greenstone 3's gs2build, unless it has already been done
206 if [ "x$GSDLHOME" = "x" ]; then
207 cd "$gsdl2path"
208 . setup.bash
209 cd "$thisdir"
210 fi
211
212else
213 echo "Greenstone version unknown."
214 exit 1
215fi
216
217echo
218if [ "x$GSDL3SRCHOME" != "x" ]; then
219 echo "GSDL3SRCHOME is: $GSDL3SRCHOME"
220fi
221if [ "x$GSDL3HOME" != "x" ]; then
222 echo "GSDL3HOME is: $GSDL3HOME"
223fi
224if [ "x$GSDLHOME" != "x" ]; then
225 echo "GSDLHOME is: $GSDLHOME"
226fi
227echo
228
229
230
231## ---- Check Java exists ----
232javapath=
233
234# Some users may set the above line manually
235if [ "x$javapath" = "x" ]; then
236
237 # If it is set, use the JAVA_HOME environment variable
238 if [ "x$JAVA_HOME" != "x" ]; then
239 javapath="$JAVA_HOME/bin/java"
240
241 # Check if Java is on the search path
242 else
243 javapath=`which java 2> /dev/null`
244 fi
245fi
246
247# Check that a Java executable has been found
248if [ "$glilang" = "es" ]; then
249 echo "Revisando Java: $javapath"
250elif [ "$glilang" = "fr" ]; then
251 echo "Vérification de Java: $javapath"
252elif [ "$glilang" = "ru" ]; then
253 echo "ðÒÏ×ÅÒËÁ Java: $javapath"
254else
255 echo "Checking Java: $javapath"
256fi
257if [ ! -x "$javapath" ]; then
258 echo
259 if [ "$glilang" = "es" ]; then
260 echo "No se pudo localizar una versión apropiada de Java. Usted deberá "
261 echo "instalar un Ambiente de Ejecución Java (versión 1.4 o superior) "
262 echo "antes de correr la $PROGNAME."
263 elif [ "$glilang" = "fr" ]; then
264 echo "Une version adéquate de Java n'a pas pu être localisée."
265 echo "Vous devez installer un Java Runtime Environment (version 1.4 ou"
266 echo "supérieur) avant de démarrer $PROGNAME."
267 elif [ "$glilang" = "ru" ]; then
268 echo "îÅ ÕÄÁÌÏÓØ ÏÐÒÅÄÅÌÉÔØ ÍÅÓÔÏÎÁÈÏÖÄÅÎÉÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ×ÅÒÓÉÉ Java."
269 echo "÷Ù ÄÏÌÖÎÙ ÕÓÔÁÎÏ×ÉÔØ Java Runtime Environment (×ÅÒÓÉÀ 1.4 ÉÌÉ ×ÙÛÅ)"
270 echo "ÐÅÒÅÄ ××ÏÄÏÍ $PROGNAME."
271 else
272 echo "Failed to locate an appropriate version of Java. You must install a"
273 echo "Java Runtime Environment (version 1.4 or greater) before running the"
274 echo "$PROGNAME."
275 fi
276 exit 1
277fi
278
279
280## -- Check the version of Java is new enough (1.4.0 or higher) to run the GLI --
281`$javapath -classpath . CheckJavaVersion > /dev/null`
282if [ $? -ne 2 ] ; then
283 echo
284 if [ "$glilang" = "es" ]; then
285 echo "La versión del Ambiente de Ejecución Java (JRE por sus siglas en "
286 echo "inglés) que usted tiene instalada es demasiado vieja para ejecutar "
287 echo "la $PROGNAME. Por favor instale una "
288 echo "nueva versión del Ambiente de Ejecución Java (versión 1.4 o "
289 echo "posterior) y ejecute nuevamente este guión."
290 elif [ "$glilang" = "fr" ]; then
291 echo "La version de Java Runtime Environment que vous avez installée est"
292 echo "trop vielle pour faire fonctionner $PROGNAME."
293 echo "Veuillez installer une nouvelle version du JRE (version 1.4 ou plus"
294 echo "récente) et redémarrez le script."
295 elif [ "$glilang" = "ru" ]; then
296 echo "÷ÅÒÓÉÑ Java Runtime Environment, ËÏÔÏÒÕÀ ÷Ù ÕÓÔÁÎÏ×ÉÌÉ, ÏÞÅÎØ ÓÔÁÒÁ,"
297 echo "ÞÔÏÂÙ ÕÐÒÁ×ÌÑÔØ $PROGNAME. ðÏÖÁÌÕÊÓÔÁ, "
298 echo "ÕÓÔÁÎÏ×ÉÔÅ ÎÏ×ÕÀ ×ÅÒÓÉÀ JRE (×ÅÒÓÉÀ 1.4 ÉÌÉ ÂÏÌÅÅ ÎÏ×ÕÀ) É"
299 echo "ÐÅÒÅÕÓÔÁÎÏ×ÉÔÅ ÜÔÏÔ ÓËÒÉÐÔ"
300 else
301 echo "The version of the Java Runtime Environment you have installed is too"
302 echo "old to run the $PROGNAME. Please install a new"
303 echo "version of the JRE (version 1.4 or newer) and rerun this script."
304 fi
305 exit 1
306fi
307
308## ---- Check that the GEMS has been compiled ----
309if [ ! -f "classes/org/greenstone/gatherer/gems/GEMS.class" ] && [ ! -f "GLI.jar" ]; then
310 echo
311 if [ "$glilang" = "es" ]; then
312 echo "Usted necesita compilar la $PROGNAME"
313 echo "(por medio de makegli.sh) antes de ejecutar este guión."
314 elif [ "$glilang" = "fr" ]; then
315 echo "Vous devez compiler le $PROGNAME (en utilisant makegli.sh)"
316 echo "avant d'exécuter ce script."
317 elif [ "$glilang" = "ru" ]; then
318 echo "÷Ù ÄÏÌÖÎÙ ËÏÍÐÉÌÉÒÏ×ÁÔØ $PROGNAME"
319 echo "(ÉÓÐÏÌØÚÕÑ makegli.sh) ÐÅÒÅÄ ××ÏÄÏÍ ÜÔÏÇÏ ÓËÒÉÐÔÁ"
320 else
321 echo "You need to compile the $PROGNAME (using makegli.sh)"
322 echo "before running this script."
323 fi
324 exit 1
325fi
326
327## ---- Finally, run the GEMS ----
328echo
329if [ "$glilang" = "es" ]; then
330 echo "Ejecutando la $PROGNAME..."
331elif [ "$glilang" = "fr" ]; then
332 echo "Exécution de $PROGNAME..."
333elif [ "$glilang" = "ru" ]; then
334 echo "ôÅËÕÝÉÊ ÂÉÂÌÉÏÔÅÞÎÙÊ $PROGNAME..."
335else
336 echo "Running the $PROGNAME..."
337fi
338
339# Other arguments you can provide to GEMS to work around memory limitations, or debug
340# -Xms<number>M To set minimum memory (by default 32MB)
341# -Xmx<number>M To set maximum memory (by default the nearest 2^n to the total remaining physical memory)
342# -verbose:gc To set garbage collection messages
343# -Xincgc For incremental garbage collection (significantly slows performance)
344# -Xprof Function call profiling
345# -Xloggc:<file> Write garbage collection log
346
347# basic_command is the cmd string common to both Greenstone 3 and Greenstone 2 execution
348# (gs3 doesn't -gsdl3src $GSDL3SRCHOME passed to it, it needs $GSDL3HOME to find the collect dir)
349basic_command="$javapath -classpath classes/:GLI.jar:lib/apache.jar org.greenstone.gatherer.gems.GEMS"
350
351if [ "$_version" -eq 2 ]; then
352 `$basic_command -gsdl $GSDLHOME $*`
353elif [ "$_version" -eq 3 ]; then
354 `$basic_command -gsdl3 $GSDL3HOME $*`
355fi
356
357
358if [ "$glilang" = "es" ]; then
359 echo "¡Hecho!"
360elif [ "$glilang" = "fr" ]; then
361 echo "Terminé!"
362elif [ "$glilang" = "ru" ]; then
363 echo "÷ÙÐÏÌÎÅÎÏ!"
364else
365 echo "Done!"
366fi
Note: See TracBrowser for help on using the repository browser.