Changeset 15610

Show
Ignore:
Timestamp:
21.05.2008 12:28:36 (11 years ago)
Author:
ak19
Message:

Rewrote parts to make gli.sh be able to launch both Greenstone 3 and Greenstone 2 so that gli4gs3.sh is no longer necessary

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • gli/trunk/gli.sh

    r14977 r15610  
    11#!/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: $1" 
     28    elif [ "$3" = "fr" ]; then 
     29    echo "Vérification de GSDL: $1" 
     30    elif [ "$3" = "ru" ]; then 
     31    echo "ðÒÏ×ÅÒËÁ GSDL: $1" 
     32    else 
     33    echo "Checking GSDL: $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 
    257glilang=en 
    358 
     
    66121 
    67122##  ---- Determine GSDLHOME ---- 
     123## gsdlpath can be either Greenstone 3 or Greenstone 2 
    68124gsdlpath= 
    69  
    70125# Some users may set the above line manually 
    71 if [ "x$gsdlpath" = "x" ]; then 
     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 
    72135    # Check the environment variable first 
    73     if [ "x$GSDLHOME" != "x" ]; then 
     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 
    74153    gsdlpath=$GSDLHOME 
    75  
     154    _version=2 
    76155    # If it is not set, assume that the GLI is installed as a subdirectory of Greenstone 
    77156    else 
    78157    gsdlpath=`(cd .. && pwd)` 
    79     fi 
    80 fi 
    81  
    82 # Check that the Greenstone installation looks OK 
    83 if [ "$glilang" = "es" ]; then 
    84     echo "Revisando GSDL: $gsdlpath" 
    85 elif [ "$glilang" = "fr" ]; then 
    86     echo "Vérification de GSDL: $gsdlpath" 
    87 elif [ "$glilang" = "ru" ]; then 
    88     echo "ðÒÏ×ÅÒËÁ GSDL: $gsdlpath" 
    89 else 
    90     echo "Checking GSDL: $gsdlpath" 
    91 fi 
    92 if [ ! -f "${gsdlpath}/setup.bash" ] ; then 
    93     echo 
    94     if [ "$glilang" = "es" ]; then 
    95     echo "No se pudo encontrar la instalación de Greenstone o está incompleta." 
    96         echo "Trate de reinstalar Greenstone y a continuación ejecute nuevamente" 
    97     echo "este guión." 
    98     elif [ "$glilang" = "fr" ]; then 
    99     echo "L'installation de Greenstone est introuvable ou incomplète." 
    100     echo "Essayez de réinstaller Greenstone et exécutez ce script à nouveau." 
    101     elif [ "$glilang" = "ru" ]; then 
    102     echo "éÎÓÔÁÌÌÑÃÉÑ Greenstone ÎÅ ÂÙÌÁ ÎÁÊÄÅÎÁ ÉÌÉ ÏÎÁ ÎÅÐÏÌÎÁ." 
    103     echo "ðÏÐÒÏÂÕÊÔÅ ÐÏ×ÔÏÒÎÏ ÕÓÔÁÎÏ×ÉÔØ Greenstone, Á ÚÁÔÅÍ ××ÅÓÔÉ ÜÔÏÔ ÓËÒÉÐÔ ÓÎÏ×Á." 
    104     else 
    105     echo "The Greenstone installation could not be found, or is incomplete." 
    106     echo "Try reinstalling Greenstone then running this script again." 
    107     fi 
    108     exit 1 
    109 fi 
    110  
    111 # Setup Greenstone, unless it has already been done 
    112 if [ "x$GSDLHOME" = "x" ]; then 
    113     cd "$gsdlpath" 
    114     . setup.bash 
    115     cd "$thisdir" 
    116 fi 
    117  
     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" 
     166echo 
     167 
     168# Check that the main Greenstone installation for the version we're running looks OK 
     169check_installation $gsdlpath $_version $glilang 
     170 
     171 
     172# Need to source the correct setup file depending on whether we are running 
     173# gs3 or gs2 
     174# If we're running version GS2 
     175if [ "$_version" -eq 2 ]; then 
     176    echo "Version is 2" 
     177    # Setup Greenstone 2, unless it has already been done 
     178    if [ "x$GSDLHOME" = "x" ]; then 
     179    cd "$gsdlpath" 
     180    . setup.bash 
     181    cd "$thisdir" 
     182    fi 
     183# else, if we're running GS3 
     184elif [ "$_version" -eq 3 ]; then 
     185    # Setup Greenstone 3, unless it has already been done 
     186    if [ "x$GSDL3HOME" = "x" -o "x$GSDL3SRCHOME" = "x" ]; then 
     187    cd "$gsdlpath" 
     188    . gs3-setup.sh 
     189    cd "$thisdir" 
     190    fi 
     191     
     192    ## if Greenstone version 3 is running, we want to set gsdl2path 
     193    ##  ---- Determine GSDLHOME ---- 
     194    ## may be already set, or manually entered here. 
     195    gsdl2path= 
     196     
     197    # Some users may set the above line manually 
     198    if [ "x$gsdl2path" = "x" ]; then 
     199        # Check the environment variable first 
     200    if [ "x$GSDLHOME" != "x" ]; then 
     201        echo "GSDLHOME environment variable is set to $GSDLHOME." 
     202        echo "Will use this to find build scripts." 
     203        gsdl2path=$GSDLHOME 
     204        # If it is not set, assume that the gs2build subdirectory of Greenstone 3 exists 
     205    else 
     206        gsdl2path=$GSDL3SRCHOME/gs2build 
     207    fi 
     208    fi 
     209    # Check that Greenstone 3's Greenstone 2 stuff looks OK (in gs2build) 
     210    check_installation $gsdl2path "" $glilang 
     211   
     212    # Setup Greenstone 3's gs2build, unless it has already been done 
     213    if [ "x$GSDLHOME" = "x" ]; then 
     214    cd "$gsdl2path" 
     215    . setup.bash 
     216    cd "$thisdir" 
     217    fi 
     218 
     219else  
     220    echo "Greenstone version unknown."     
     221    exit 1 
     222fi 
     223 
     224echo 
     225echo "***GSDLHOME is: $GSDLHOME" 
     226echo "***GSDL3SRCHOME is: $GSDL3SRCHOME" 
     227echo "***GSDL3HOME is: $GSDL3HOME" 
     228echo 
    118229 
    119230##  ---- Check Perl exists ---- 
     
    270381fi 
    271382 
     383# basic_command is the cmd string common to both Greenstone 3 and Greenstone 2 execution 
     384basic_command="$javapath -Xmx128M -classpath classes/:GLI.jar:lib/apache.jar:lib/qfslib.jar org.greenstone.gatherer.GathererProg" 
    272385stop_gli=0 
    273386while [ "$stop_gli" = "0" ] ; do  
    274  
     387     
    275388# Other arguments you can provide to GLI to work around memory limitations, or debug 
    276389# -Xms<number>M    To set minimum memory (by default 32MB) 
     
    280393# -Xprof           Function call profiling 
    281394# -Xloggc:<file>   Write garbage collection log 
    282  
    283  
    284  
    285   $javapath -Xmx128M -classpath classes/:GLI.jar:lib/apache.jar:lib/qfslib.jar org.greenstone.gatherer.GathererProg -gsdl $GSDLHOME -gsdlos $GSDLOS $* 
    286   exit_status=$? 
    287  
    288   if [ "$exit_status" != "2" ] ; then 
    289     stop_gli=1 
    290   else 
    291     echo 
    292     if [ "$glilang" = "es" ]; then 
    293         echo "Restarting/Ejecutando la Interfaz de la $PROGNAME..." 
    294     elif [ "$glilang" = "fr" ]; then 
    295         echo "Restarting/Exécution de $PROGNAME..." 
    296     elif [ "$glilang" = "ru" ]; then 
    297         echo "Restarting/ôÅËÕÝÉÊ ÂÉÂÌÉÏÔÅÞÎÙÊ $PROGNAME..." 
    298     else 
    299         echo "Restarting the $PROGNAME..." 
    300     fi 
    301  
    302   fi 
     395     
     396    exit_status=0 
     397    if [ "$_version" -eq 2 ]; then 
     398    `$basic_command -gsdl $GSDLHOME -gsdlos $GSDLOS $*` 
     399    exit_status=$? 
     400    elif [ "$_version" -eq 3 ]; then     
     401    `$basic_command -gsdl $GSDLHOME -gsdlos $GSDLOS -gsdl3 $GSDL3HOME -gsdl3src $GSDL3SRCHOME $*` 
     402    exit_status=$? 
     403    fi 
     404     
     405    if [ "$exit_status" != "2" ] ; then 
     406    stop_gli=1 
     407    else 
     408    echo 
     409    if [ "$glilang" = "es" ]; then 
     410        echo "Restarting/Ejecutando la Interfaz de la $PROGNAME..." 
     411    elif [ "$glilang" = "fr" ]; then 
     412        echo "Restarting/Exécution de $PROGNAME..." 
     413    elif [ "$glilang" = "ru" ]; then 
     414        echo "Restarting/ôÅËÕÝÉÊ ÂÉÂÌÉÏÔÅÞÎÙÊ $PROGNAME..." 
     415    else 
     416        echo "Restarting the $PROGNAME..." 
     417    fi 
     418     
     419    fi 
    303420done  
    304421