root/gli/trunk/gli.sh @ 16483

Revision 16483, 14.9 KB (checked in by kjdon, 12 years ago)

output the version number when outputting the Checking GSDL line

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
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 [ "x$PROGNAME" = "x" ] ; then
60  if [ "$glilang" = "es" ]; then
61    PROGNAME="Biblioteca Digital Greenstone"
62  elif [ "$glilang" = "fr" ]; then
63    PROGNAME="Bibliothécaire Greenstone"
64  elif [ "$glilang" = "ru" ]; then
65    PROGNAME="ÉÎÔÅÒÆÅÊÓ Greenstone"
66  else
67    PROGNAME="Greenstone Librarian Interface"
68  fi
69fi
70
71if [ "x$PROGABBR" = "x" ] ; then
72    PROGABBR="GLI"
73fi
74
75if [ "x$PROGNAME_EN" = "x" ] ; then
76    PROGNAME_EN="Greenstone Librarian Interface"
77fi
78
79echo
80if [ "$glilang" = "es" ]; then
81    echo "Interfaz de la $PROGNAME ($PROGNAME_EN - $PROGABBR)"
82    echo "Copyright (C) 2006, New Zealand Digital Library Project, University Of Waikato"
83    echo "La Interfaz de la $PROGNAME NO INCLUYE ABSOLUTAMENTE NINGUNA GARANTÍA."
84    echo "Para mayor información vea los términos de la licencia en LICENSE.txt"
85    echo "Este es un software abierto, por lo que lo invitamos a que lo distribuya de forma gratuita"
86elif [ "$glilang" = "fr" ]; then
87    echo "Interface du $PROGNAME ($PROGNAME_EN - $PROGABBR)"
88    echo "Copyright (C) 2006, New Zealand Digital Library Project, University Of Waikato"
89    echo "$PROGABBR est fourni sans AUCUNE GARANTIE; pour des détails, voir LICENSE.txt"
90    echo "Ceci est un logiciel libre, et vous êtes invité à le redistribuer"
91elif [ "$glilang" = "ru" ]; then
92    echo "âÉÂÌÉÏÔÅÞÎÙÊ $PROGNAME ($PROGNAME_EN - $PROGABBR)"
93    echo "Copyright (C) 2006, New Zealand Digital Library Project, University Of Waikato"
94    echo "âéç ÎÅ ÄÁÅÔ áâóïìàôîï îéëáëéè çáòáîôéê; ÄÅÔÁÌÉ ÓÍ. × ÔÅËÓÔÅ LICENSE.TXT"
95    echo "üÔÏ - Ó×ÏÂÏÄÎÏ ÒÁÓÐÒÏÓÔÒÁÎÑÅÍÏÅ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ É ÷Ù ÍÏÖÅÔÅ ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÅÇÏ"
96else
97    echo "$PROGNAME ($PROGABBR)"
98    echo "Copyright (C) 2006, New Zealand Digital Library Project, University Of Waikato"
99    echo "$PROGABBR comes with ABSOLUTELY NO WARRANTY; for details see LICENSE.txt"
100    echo "This is free software, and you are welcome to redistribute it"
101fi
102echo
103
104##  -------- Run the Greenstone Librarian Interface --------
105
106# This script must be run from within the directory in which it lives
107thisdir=`pwd`
108if [ ! -f "${thisdir}/gli.sh" ]; then
109    if [ "$glilang" = "es" ]; then
110        echo "Este guión deberá ejecutarse desde el directorio en el que reside."
111    elif [ "$glilang" = "fr" ]; then
112    echo "Ce script doit être exécuté à partir du répertoire dans lequel il se trouve."
113    elif [ "$glilang" = "ru" ]; then
114    echo "üÔÏÔ ÓËÒÉÐÔ ÄÏÌÖÅÎ ÂÙÔØ ×ÚÑÔ ÉÚ ÄÉÒÅËÔÏÒÉÉ, × ËÏÔÏÒÏÊ ÏÎ ÒÁÓÐÏÌÏÖÅÎ"
115    else
116    echo "This script must be run from the directory in which it resides."
117    fi
118    exit 1
119fi
120
121
122##  ---- Determine GSDLHOME ----
123## gsdlpath can be either Greenstone 3 or Greenstone 2
124gsdlpath=
125# Some users may set the above line manually
126
127
128# This variable is set automatically:
129_version=
130if [ "x$gsdlpath" != "x" ]; then
131    get_version $gsdlpath
132    _version=$?
133# otherwise $gsdlpath is not yet set
134else
135    # Check the environment variable first
136    # Check whether environment variables for both GS2 and GS3 are set
137    # and if so, warn the user that we have defaulted to GS3
138    if [ "x$GSDLHOME" != "x" -a "x$GSDL3SRCHOME" != "x" ]; then
139        # _version not set, but both env vars set, so default to 3
140    _version=3
141    gsdlpath=$GSDL3SRCHOME
142    echo "Both Greenstone 2 and Greenstone 3 environments are set."
143    echo "It is assumed you want to run Greenstone 3."
144    echo "If you want to run Greenstone 2, please unset the"
145    echo "environment variable GSDL3SRCHOME before running GLI."
146    echo ""
147    elif [ "x$GSDL3SRCHOME" != "x" ]; then
148    echo "Only gsdl3srchome set"
149    gsdlpath=$GSDL3SRCHOME
150    _version=3
151    echo "$gsdlpath"
152    elif [ "x$GSDLHOME" != "x" ]; then
153    gsdlpath=$GSDLHOME
154    _version=2
155    # If it is not set, assume that the GLI is installed as a subdirectory of Greenstone
156    else
157    gsdlpath=`(cd .. && pwd)`
158    # Still need to find what version we are running:
159    # GS3 main directory contains file gs3-setup.sh, GS2 only setup.bash
160    get_version $gsdlpath
161    _version=$?
162    fi
163fi
164
165echo "Greenstone version found: $_version"
166
167# Check that the main Greenstone installation for the version we're running looks OK
168check_installation $gsdlpath $_version $glilang
169
170
171# Need to source the correct setup file depending on whether we are running
172# gs3 or gs2
173# If we're running version GS2
174if [ "$_version" -eq 2 ]; then
175    # Setup Greenstone 2, unless it has already been done
176    if [ "x$GSDLHOME" = "x" ]; then
177    cd "$gsdlpath"
178    . setup.bash
179    cd "$thisdir"
180    fi
181# else, if we're running GS3
182elif [ "$_version" -eq 3 ]; then
183    # Setup Greenstone 3, unless it has already been done
184    if [ "x$GSDL3HOME" = "x" -o "x$GSDL3SRCHOME" = "x" ]; then
185    cd "$gsdlpath"
186    . gs3-setup.sh
187    cd "$thisdir"
188    fi
189   
190    ## if Greenstone version 3 is running, we want to set gsdl2path
191    ##  ---- Determine GSDLHOME ----
192    ## may be already set, or manually entered here.
193    gsdl2path=
194   
195    # Some users may set the above line manually
196    if [ "x$gsdl2path" = "x" ]; then
197        # Check the environment variable first
198    if [ "x$GSDLHOME" != "x" ]; then
199        echo "GSDLHOME environment variable is set to $GSDLHOME."
200        echo "Will use this to find build scripts."
201        gsdl2path=$GSDLHOME
202        # If it is not set, assume that the gs2build subdirectory of Greenstone 3 exists
203    else
204        gsdl2path=$GSDL3SRCHOME/gs2build
205    fi
206    fi
207    # Check that Greenstone 3's Greenstone 2 stuff looks OK (in gs2build)
208    check_installation $gsdl2path "" $glilang
209 
210    # Setup Greenstone 3's gs2build, unless it has already been done
211    if [ "x$GSDLHOME" = "x" ]; then
212    cd "$gsdl2path"
213    . setup.bash
214    cd "$thisdir"
215    fi
216
217else
218    echo "Greenstone version unknown."   
219    exit 1
220fi
221
222echo
223if [ "x$GSDL3SRCHOME" != "x" ]; then
224    echo "GSDL3SRCHOME is: $GSDL3SRCHOME"
225fi
226if [ "x$GSDL3HOME" != "x" ]; then
227    echo "GSDL3HOME is: $GSDL3HOME"
228fi
229if [ "x$GSDLHOME" != "x" ]; then
230    echo "GSDLHOME is: $GSDLHOME"
231fi
232echo
233
234##  ---- Check Perl exists ----
235perlpath=
236
237# Some users may set the above line manually
238if [ "x$perlpath" = "x" ]; then
239    # Check if Perl is on the search path
240    perlpath=`which perl 2> /dev/null`
241fi
242
243# Check that a Perl executable has been found
244if [ "$glilang" = "es" ]; then
245    echo "Revisando Perl: $perlpath"
246elif [ "$glilang" = "fr" ]; then
247    echo "Vérification de Perl: $perlpath"
248elif [ "$glilang" = "ru" ]; then
249    echo "ðÒÏ×ÅÒËÁ Perl: $perlpath"
250else
251    echo "Checking Perl: $perlpath"
252fi
253if [ ! -x "$perlpath" ] ; then
254    echo
255    if [ "$glilang" = "es" ]; then
256    echo "La Interfaz de la $PROGNAME requiere Perl para "
257    echo "poder operar, pero éste no aparece en su sistema. Por favor asegúrese "
258    echo "de que Perl está instalado y se encuentra en su ruta de búsqueda. A "
259    echo "continuación ejecute nuevamente este guión."
260    elif [ "$glilang" = "fr" ]; then
261    echo "$PROGNAME nécessite Perl pour son fonctionnement,"
262    echo "mais perl n'a pas pu être détecté dans votre système. Veuillez vous "
263    echo "assurer que perl est installé et est spécifié dans votre chemin de "
264    echo "recherche, puis redémarrez ce script."
265    elif [ "$glilang" = "ru" ]; then
266    echo "âÉÂÌÉÏÔÅÞÎÙÊ $PROGNAME ÔÒÅÂÕÅÔ Perl, ÞÔÏÂÙ ÉÍÅÔØ ×ÏÚÍÏÖÎÏÓÔØ"
267    echo "ÒÁÂÏÔÁÔØ, ÎÏ Perl ÎÅ ÂÙÌ × ×ÁÛÅÊ ÓÉÓÔÅÍÅ. ðÏÖÁÌÕÊÓÔÁ, ÐÏÄÔ×ÅÒÄÉÔÅ, ÞÔÏ "
268    echo "Perl ÕÓÔÁÎÏ×ÌÅÎ É ÎÁÈÏÄÉÔÓÑ ÎÁ ×ÁÛÅÍ ÐÕÔÉ ÐÏÉÓËÁ, ÚÁÔÅÍ ÐÏ×ÔÏÒÎÏ××ÅÄÉÔÅ"
269    echo "ÜÔÏÔ ÓËÒÉÐÔ."
270    else
271    echo "The $PROGNAME requires Perl in order to operate,"
272    echo "but perl could not be detected on your system. Please ensure that perl"
273    echo "is installed and is on your search path, then rerun this script."
274    fi
275    exit 1
276fi
277
278
279## ---- Check Java exists ----
280javapath=
281
282# Some users may set the above line manually
283if [ "x$javapath" = "x" ]; then
284
285    # If it is set, use the JAVA_HOME environment variable
286    if [ "x$JAVA_HOME" != "x" ]; then
287    javapath="$JAVA_HOME/bin/java"
288
289    # Check if Java is on the search path
290    else
291    javapath=`which java 2> /dev/null`
292    fi
293fi
294
295# Check that a Java executable has been found
296if [ "$glilang" = "es" ]; then
297    echo "Revisando Java: $javapath"
298elif [ "$glilang" = "fr" ]; then
299    echo "Vérification de Java: $javapath"
300elif [ "$glilang" = "ru" ]; then
301    echo "ðÒÏ×ÅÒËÁ Java: $javapath"
302else
303    echo "Checking Java: $javapath"
304fi
305if [ ! -x "$javapath" ]; then
306    echo
307    if [ "$glilang" = "es" ]; then
308    echo "No se pudo localizar una versión apropiada de Java. Usted deberá "
309    echo "instalar un Ambiente de Ejecución Java (versión 1.4 o superior) "
310    echo "antes de correr la Interfaz de la $PROGNAME."
311    elif [ "$glilang" = "fr" ]; then
312    echo "Une version adéquate de Java n'a pas pu être localisée."
313    echo "Vous devez installer un Java Runtime Environment (version 1.4 ou"
314    echo "supérieur) avant de démarrer $PROGNAME."
315    elif [ "$glilang" = "ru" ]; then
316    echo "îÅ ÕÄÁÌÏÓØ ÏÐÒÅÄÅÌÉÔØ ÍÅÓÔÏÎÁÈÏÖÄÅÎÉÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ×ÅÒÓÉÉ Java."
317    echo "÷Ù ÄÏÌÖÎÙ ÕÓÔÁÎÏ×ÉÔØ Java Runtime Environment (×ÅÒÓÉÀ 1.4 ÉÌÉ ×ÙÛÅ)"
318    echo "ÐÅÒÅÄ ××ÏÄÏÍ ÂÉÂÌÉÏÔÅÞÎÏÇÏ $PROGNAME."
319    else
320    echo "Failed to locate an appropriate version of Java. You must install a"
321    echo "Java Runtime Environment (version 1.4 or greater) before running the"
322    echo "$PROGNAME."
323    fi
324    exit 1
325fi
326
327
328## -- Check the version of Java is new enough (1.4.0 or higher) to run the GLI --
329`$javapath -classpath . CheckJavaVersion > /dev/null`
330if [ $? -ne 2 ] ; then
331    echo
332    if [ "$glilang" = "es" ]; then
333    echo "La versión del Ambiente de Ejecución Java (JRE por sus siglas en "
334    echo "inglés) que usted tiene instalada es demasiado vieja para ejecutar "
335    echo "la Interfaz de la $PROGNAME. Por favor instale "
336    echo "una nueva versión del Ambiente de Ejecución Java (versión 1.4 o "
337    echo "posterior) y ejecute nuevamente este guión."
338    elif [ "$glilang" = "fr" ]; then
339    echo "La version de Java Runtime Environment que vous avez installée est"
340    echo "trop vielle pour faire fonctionner $PROGNAME."
341    echo "Veuillez installer une nouvelle version du JRE (version 1.4 ou plus"
342    echo "récente) et redémarrez le script."
343    elif [ "$glilang" = "ru" ]; then
344    echo "÷ÅÒÓÉÑ Java Runtime Environment, ËÏÔÏÒÕÀ ÷Ù ÕÓÔÁÎÏ×ÉÌÉ, ÏÞÅÎØ ÓÔÁÒÁ,"
345    echo "ÞÔÏÂÙ ÕÐÒÁ×ÌÑÔØ ÂÉÂÌÉÏÔÅÞÎÙÍ $PROGNAME. ðÏÖÁÌÕÊÓÔÁ, "
346    echo "ÕÓÔÁÎÏ×ÉÔÅ ÎÏ×ÕÀ ×ÅÒÓÉÀ JRE (×ÅÒÓÉÀ 1.4 ÉÌÉ ÂÏÌÅÅ ÎÏ×ÕÀ) É"
347    echo "ÐÅÒÅÕÓÔÁÎÏ×ÉÔÅ ÜÔÏÔ ÓËÒÉÐÔ"
348    else
349    echo "The version of the Java Runtime Environment you have installed is too"
350    echo "old to run the $PROGNAME. Please install a new"
351    echo "version of the JRE (version 1.4 or newer) and rerun this script."
352    fi
353    exit 1
354fi
355
356## ---- Check that the GLI has been compiled ----
357if [ ! -f "classes/org/greenstone/gatherer/GathererProg.class" ] && [ ! -f "GLI.jar" ]; then
358    echo
359    if [ "$glilang" = "es" ]; then
360    echo "Usted necesita compilar la Interfaz de la Biblioteca Digital Greenstone"
361    echo "(por medio de makegli.sh) antes de ejecutar este guión."
362    elif [ "$glilang" = "fr" ]; then
363    echo "Vous devez compiler le Greenstone Interface (en utilisant makegli.sh)"
364    echo "avant d'exécuter ce script."
365    elif [ "$glilang" = "ru" ]; then
366    echo "÷Ù ÄÏÌÖÎÙ ËÏÍÐÉÌÉÒÏ×ÁÔØ ÂÉÂÌÉÏÔÅÞÎÙÊ ÉÎÔÅÒÆÅÊÓ Greenstone"
367    echo "(ÉÓÐÏÌØÚÕÑ makegli.sh) ÐÅÒÅÄ ××ÏÄÏÍ ÜÔÏÇÏ ÓËÒÉÐÔÁ"
368    else
369    echo "You need to compile the Greenstone Librarian Interface (using makegli.sh)"
370    echo "before running this script."
371    fi
372    exit 1
373fi
374
375## ---- Finally, run the GLI ----
376echo
377if [ "$glilang" = "es" ]; then
378    echo "Ejecutando la Interfaz de la $PROGNAME..."
379elif [ "$glilang" = "fr" ]; then
380    echo "Exécution de $PROGNAME..."
381elif [ "$glilang" = "ru" ]; then
382    echo "ôÅËÕÝÉÊ ÂÉÂÌÉÏÔÅÞÎÙÊ $PROGNAME..."
383else
384    echo "Running the $PROGNAME..."
385fi
386
387# basic_command is the cmd string common to both Greenstone 3 and Greenstone 2 execution
388basic_command="$javapath -Xmx128M -classpath classes/:GLI.jar:lib/apache.jar:lib/qfslib.jar org.greenstone.gatherer.GathererProg"
389stop_gli=0
390while [ "$stop_gli" = "0" ] ; do
391   
392# Other arguments you can provide to GLI to work around memory limitations, or debug
393# -Xms<number>M    To set minimum memory (by default 32MB)
394# -Xmx<number>M    To set maximum memory (by default the nearest 2^n to the total remaining physical memory)
395# -verbose:gc      To set garbage collection messages
396# -Xincgc          For incremental garbage collection (significantly slows performance)
397# -Xprof           Function call profiling
398# -Xloggc:<file>   Write garbage collection log
399   
400    exit_status=0
401    if [ "$_version" -eq 2 ]; then
402    `$basic_command -gsdl $GSDLHOME -gsdlos $GSDLOS $*`
403    exit_status=$?
404    elif [ "$_version" -eq 3 ]; then   
405    `$basic_command -gsdl $GSDLHOME -gsdlos $GSDLOS -gsdl3 $GSDL3HOME -gsdl3src $GSDL3SRCHOME $*`
406    exit_status=$?
407    fi
408   
409    if [ "$exit_status" != "2" ] ; then
410    stop_gli=1
411    else
412    echo
413    if [ "$glilang" = "es" ]; then
414        echo "Restarting/Ejecutando la Interfaz de la $PROGNAME..."
415    elif [ "$glilang" = "fr" ]; then
416        echo "Restarting/Exécution de $PROGNAME..."
417    elif [ "$glilang" = "ru" ]; then
418        echo "Restarting/ôÅËÕÝÉÊ ÂÉÂÌÉÏÔÅÞÎÙÊ $PROGNAME..."
419    else
420        echo "Restarting the $PROGNAME..."
421    fi
422   
423    fi
424done
425
426if [ "$glilang" = "es" ]; then
427    echo "¡Hecho!"
428elif [ "$glilang" = "fr" ]; then
429    echo "Terminé!"
430elif [ "$glilang" = "ru" ]; then
431    echo "÷ÙÐÏÌÎÅÎÏ!"
432else
433    echo "Done!"
434fi
Note: See TracBrowser for help on using the browser.