source: gli/trunk/gems.sh@ 17946

Last change on this file since 17946 was 17946, checked in by max, 15 years ago

Small changes

  • Property svn:executable set to *
File size: 14.1 KB
RevLine 
[8272]1#!/bin/sh
[16546]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
[8272]57glilang=en
58
[16546]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
[8272]74echo
[12287]75if [ "$glilang" = "es" ]; then
[16546]76 echo "$PROGNAME ($PROGNAME_EN - $PROGABBR)"
[17946]77 echo "Copyright (C) 2008, New Zealand Digital Library Project, University Of Waikato"
[10788]78 echo "GEMS NO INCLUYE ABSOLUTAMENTE NINGUNA GARANTÍA."
[8272]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"
[12287]81elif [ "$glilang" = "fr" ]; then
[16546]82 echo "$PROGNAME ($PROGNAME_EN - $PROGABBR)"
[17946]83 echo "Copyright (C) 2008, New Zealand Digital Library Project, University Of Waikato"
[10788]84 echo "GEMS est fourni sans AUCUNE GARANTIE; pour des détails, voir LICENSE.txt"
[8272]85 echo "Ceci est un logiciel libre, et vous êtes invité à le redistribuer"
[12287]86elif [ "$glilang" = "ru" ]; then
[16546]87 echo "$PROGNAME ($PROGNAME_EN - $PROGABBR)"
[17946]88 echo "Copyright (C) 2008, New Zealand Digital Library Project, University Of Waikato"
[8272]89 echo "âéç ÎÅ ÄÁÅÔ áâóïìàôîï îéëáëéè çáòáîôéê; ÄÅÔÁÌÉ ÓÍ. × ÔÅËÓÔÅ LICENSE.TXT"
90 echo "üÔÏ - Ó×ÏÂÏÄÎÏ ÒÁÓÐÒÏÓÔÒÁÎÑÅÍÏÅ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ É ÷Ù ÍÏÖÅÔÅ ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÅÇÏ"
91else
[16546]92 echo "$PROGNAME ($PROGABBR)"
[17946]93 echo "Copyright (C) 2008, New Zealand Digital Library Project, University Of Waikato"
[10788]94 echo "GEMS comes with ABSOLUTELY NO WARRANTY; for details see LICENSE.txt"
[8272]95 echo "This is free software, and you are welcome to redistribute it"
96fi
97echo
98
[10788]99## -------- Run the Greenstone Editor for Metadata Sets --------
[8272]100
101# This script must be run from within the directory in which it lives
102thisdir=`pwd`
[10788]103if [ ! -f "${thisdir}/gems.sh" ]; then
[12287]104 if [ "$glilang" = "es" ]; then
[8272]105 echo "Este guión deberá ejecutarse desde el directorio en el que reside."
[12287]106 elif [ "$glilang" = "fr" ]; then
[8272]107 echo "Ce script doit être exécuté à partir du répertoire dans lequel il se trouve."
[12287]108 elif [ "$glilang" = "ru" ]; then
[8272]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 ----
[16546]118## gsdlpath can be either Greenstone 3 or Greenstone 2
[8272]119gsdlpath=
[16546]120# Some users may set the above line manually
[8272]121
[16546]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
[8272]130 # Check the environment variable first
[16546]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
[8272]148 gsdlpath=$GSDLHOME
[16546]149 _version=2
150 # If it is not set, assume that the GLI is installed as a subdirectory of Greenstone
[8272]151 else
[12287]152 gsdlpath=`(cd .. && pwd)`
[16546]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=$?
[8272]157 fi
158fi
159
[16546]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"
[8272]175 fi
[16546]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."
[8272]214 exit 1
215fi
216
[16546]217echo
218if [ "x$GSDL3SRCHOME" != "x" ]; then
219 echo "GSDL3SRCHOME is: $GSDL3SRCHOME"
[8272]220fi
[16546]221if [ "x$GSDL3HOME" != "x" ]; then
222 echo "GSDL3HOME is: $GSDL3HOME"
223fi
224if [ "x$GSDLHOME" != "x" ]; then
225 echo "GSDLHOME is: $GSDLHOME"
226fi
227echo
[8272]228
229
[16546]230
[17819]231## ---- Check Java ----
232echo "Java:"
233MINIMUM_JAVA_VERSION=1.4.0_00
[8272]234
[17819]235# Some users may set this line manually
236#JAVA_HOME=
[8272]237
[17819]238if [ -z $javapath ]; then
[8272]239
[17819]240 # sus out search4j
241 if [ "$_version" -eq 2 -a -e "$GSDLHOME/bin/$GSDLOS/search4j" ]; then
242 SEARCH4J_EXECUTABLE=$GSDLHOME/bin/$GSDLOS/search4j
243 elif [ "$_version" -eq 3 -a -e "$GSDL3SRCHOME/bin/$GSDLOS/search4j" ]; then
244 SEARCH4J_EXECUTABLE=$GSDL3SRCHOME/bin/search4j
245 elif [ -e "../bin/$GSDLOS/search4j" ]; then
246 SEARCH4J_EXECUTABLE=../bin/$GSDLOS/search4j
247 elif [ -e "../bin/search4j" ]; then
248 SEARCH4J_EXECUTABLE=../bin/search4j
[8272]249 else
[17819]250 echo "Couldn't determine the location of the search4j executable"
251 echo "If you are running Greenstone2"
252 echo " * check GSDLHOME is set"
253 echo " * check bin/$GSDLOS/search4j exists"
254 echo " * check bin/$GSDLOS/search4j is executable"
255 echo "If you are running Greenstone3"
256 echo " * check GSDL3SRCHOME is set"
257 echo " * check bin/search4j exists"
258 echo " * check bin/search4j is executable"
259 echo " * try running 'ant compile-search4j'"
[8272]260 fi
261
[17819]262 # Give search4j a hint to find Java depending on the platform
263 if [ $GSDLOS = linux ]; then
264 HINT=`cd ..;pwd`/packages/jre
265 elif [ $GSDLOS = darwin ]; then
266 HINT=/System/Library/Frameworks/JavaVM.framework/Home
267 fi
268
269 javapath=`$SEARCH4J_EXECUTABLE -e -p $HINT -m $MINIMUM_JAVA_VERSION`
[8272]270
[17819]271 if [ "$?" != "0" ]; then
[8272]272
[17819]273 OLDVER=`"$SEARCH4J_EXECUTABLE" -v -p "$HINT"`
274
275 if [ "$?" = "0" ]; then
276
277 if [ "$glilang" = "es" ]; then
278 echo "La versión del Ambiente de Ejecución Java (JRE por sus siglas en "
279 echo "inglés) que usted tiene instalada es demasiado vieja para ejecutar "
280 echo "la Interfaz de la $PROGNAME. Por favor instale "
281 echo "una nueva versión del Ambiente de Ejecución Java (versión $MINIMUM_JAVA_VERSION o "
282 echo "posterior) y ejecute nuevamente este guión."
283 elif [ "$glilang" = "fr" ]; then
284 echo "La version de Java Runtime Environment que vous avez installée est"
285 echo "trop vielle pour faire fonctionner $PROGNAME."
286 echo "Veuillez installer une nouvelle version du JRE (version $MINIMUM_JAVA_VERSION ou plus"
287 echo "récente) et redémarrez le script."
288 elif [ "$glilang" = "ru" ]; then
289 echo "÷ÅÒÓÉÑ Java Runtime Environment, ËÏÔÏÒÕÀ ÷Ù ÕÓÔÁÎÏ×ÉÌÉ, ÏÞÅÎØ ÓÔÁÒÁ,"
290 echo "ÞÔÏÂÙ ÕÐÒÁ×ÌÑÔØ ÂÉÂÌÉÏÔÅÞÎÙÍ $PROGNAME. ðÏÖÁÌÕÊÓÔÁ, "
291 echo "ÕÓÔÁÎÏ×ÉÔÅ ÎÏ×ÕÀ ×ÅÒÓÉÀ JRE (×ÅÒÓÉÀ $MINIMUM_JAVA_VERSION ÉÌÉ ÂÏÌÅÅ ÎÏ×ÕÀ) É"
292 echo "ÐÅÒÅÕÓÔÁÎÏ×ÉÔÅ ÜÔÏÔ ÓËÒÉÐÔ"
293 else
294 echo "The version of the Java Runtime Environment you have installed ($OLDVER)"
295 echo "is too old to run the $PROGNAME. Please install a new"
296 echo "version of the JRE (version $MINIMUM_JAVA_VERSION or newer) and rerun this script."
297 fi
298 exit 1
299
300 else
301
302 echo
303 if [ "$glilang" = "es" ]; then
304 echo "No se pudo localizar una versión apropiada de Java. Usted deberá "
305 echo "instalar un Ambiente de Ejecución Java (versión $MINIMUM_JAVA_VERSION o superior) "
306 echo "antes de correr la Interfaz de la $PROGNAME."
307 elif [ "$glilang" = "fr" ]; then
308 echo "Une version adéquate de Java n'a pas pu être localisée."
309 echo "Vous devez installer un Java Runtime Environment (version $MINIMUM_JAVA_VERSION ou"
310 echo "supérieur) avant de démarrer $PROGNAME."
311 echo "Si vous avez Java installé sur votre ordinateur veuillez vérifier la variable"
312 echo "d'environnement JAVA_HOME."
313 elif [ "$glilang" = "ru" ]; then
314 echo "îÅ ÕÄÁÌÏÓØ ÏÐÒÅÄÅÌÉÔØ ÍÅÓÔÏÎÁÈÏÖÄÅÎÉÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ×ÅÒÓÉÉ Java."
315 echo "÷Ù ÄÏÌÖÎÙ ÕÓÔÁÎÏ×ÉÔØ Java Runtime Environment (×ÅÒÓÉÀ $MINIMUM_JAVA_VERSION ÉÌÉ ×ÙÛÅ)"
316 echo "ÐÅÒÅÄ ××ÏÄÏÍ ÂÉÂÌÉÏÔÅÞÎÏÇÏ $PROGNAME."
317 else
318 echo "Failed to locate an appropriate version of Java. You must install a"
319 echo "Java Runtime Environment (version $MINIMUM_JAVA_VERSION or greater) before running the"
320 echo "$PROGNAME."
321 echo "If you have Java intalled on your machine please set the environment variable JAVA_HOME."
322 fi
323 fi
324
[8272]325 fi
[17819]326
[8272]327fi
[17819]328echo $javapath
329echo
[8272]330
[17819]331
332
[10788]333## ---- Check that the GEMS has been compiled ----
[8272]334if [ ! -f "classes/org/greenstone/gatherer/gems/GEMS.class" ] && [ ! -f "GLI.jar" ]; then
[10788]335 echo
[12287]336 if [ "$glilang" = "es" ]; then
[16546]337 echo "Usted necesita compilar la $PROGNAME"
[8272]338 echo "(por medio de makegli.sh) antes de ejecutar este guión."
[12287]339 elif [ "$glilang" = "fr" ]; then
[16546]340 echo "Vous devez compiler le $PROGNAME (en utilisant makegli.sh)"
[8272]341 echo "avant d'exécuter ce script."
[12287]342 elif [ "$glilang" = "ru" ]; then
[16546]343 echo "÷Ù ÄÏÌÖÎÙ ËÏÍÐÉÌÉÒÏ×ÁÔØ $PROGNAME"
[8272]344 echo "(ÉÓÐÏÌØÚÕÑ makegli.sh) ÐÅÒÅÄ ××ÏÄÏÍ ÜÔÏÇÏ ÓËÒÉÐÔÁ"
345 else
[16546]346 echo "You need to compile the $PROGNAME (using makegli.sh)"
[8272]347 echo "before running this script."
348 fi
349 exit 1
350fi
351
[10788]352## ---- Finally, run the GEMS ----
[8272]353echo
[12287]354if [ "$glilang" = "es" ]; then
[16546]355 echo "Ejecutando la $PROGNAME..."
[12287]356elif [ "$glilang" = "fr" ]; then
[16546]357 echo "Exécution de $PROGNAME..."
[12287]358elif [ "$glilang" = "ru" ]; then
[16546]359 echo "ôÅËÕÝÉÊ ÂÉÂÌÉÏÔÅÞÎÙÊ $PROGNAME..."
[10788]360else
[16546]361 echo "Running the $PROGNAME..."
[10788]362fi
[8272]363
[10788]364# Other arguments you can provide to GEMS to work around memory limitations, or debug
[8272]365# -Xms<number>M To set minimum memory (by default 32MB)
366# -Xmx<number>M To set maximum memory (by default the nearest 2^n to the total remaining physical memory)
367# -verbose:gc To set garbage collection messages
368# -Xincgc For incremental garbage collection (significantly slows performance)
369# -Xprof Function call profiling
370# -Xloggc:<file> Write garbage collection log
371
[16546]372# basic_command is the cmd string common to both Greenstone 3 and Greenstone 2 execution
373# (gs3 doesn't -gsdl3src $GSDL3SRCHOME passed to it, it needs $GSDL3HOME to find the collect dir)
374basic_command="$javapath -classpath classes/:GLI.jar:lib/apache.jar org.greenstone.gatherer.gems.GEMS"
[8272]375
[16546]376if [ "$_version" -eq 2 ]; then
377 `$basic_command -gsdl $GSDLHOME $*`
378elif [ "$_version" -eq 3 ]; then
379 `$basic_command -gsdl3 $GSDL3HOME $*`
380fi
381
382
[12287]383if [ "$glilang" = "es" ]; then
[8272]384 echo "¡Hecho!"
[12287]385elif [ "$glilang" = "fr" ]; then
[8272]386 echo "Terminé!"
[12287]387elif [ "$glilang" = "ru" ]; then
[8272]388 echo "÷ÙÐÏÌÎÅÎÏ!"
389else
390 echo "Done!"
[17819]391fi
Note: See TracBrowser for help on using the repository browser.