Ignore:
Timestamp:
2008-04-14T16:20:45+12:00 (16 years ago)
Author:
dmn
Message:

updating branch from trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • greenstone3/branches/customizingGreenstone3/gs3-setup.sh

    r13824 r15191  
    22# this should work under ash, bash, zsh, ksh, sh style shells.
    33
    4 # make sure we are sourced, and not run
     4#the purpose of this file is to check/set up the environment for greenstone3
     5#sorts out
     6#   - gsdl3home
     7#   - java
    58
    6 if test "$0" != "`echo $0 | sed s/gs3-setup\.sh//`" ; then
    7 # if $0 contains "gs3-setup.sh" we've been run... $0 is shellname if sourced.
    8 # One exception is zsh has an option to set it temporarily to the script name
    9   if test -z "$ZSH_NAME" ; then
    10   # we aren't using zsh
    11   gsdl_not_sourced=true
    12   fi
    13 fi
    14 
    15 if test -n "$gsdl_not_sourced" ; then
    16   echo "    Error: Make sure you source this script, not execute it. Eg:"
    17   echo "        $ source gs3-setup.sh"
    18   echo "    or"
    19   echo "        $ . ./gs3-setup.sh"
    20   echo "    not"
    21   echo "        $ ./gs3-setup.sh"
    22   unset gsdl_not_sourced
    23   exit 1
    24 fi
    25 
    26 if test ! -f gs3-setup.sh ; then
    27   echo "You must source the script from within the Greenstone home directory"
    28   exit 1
    29 fi
    30 
    31 GSDL3SRCHOME=`pwd`
    32 GSDL3HOME=$GSDL3SRCHOME/web
    33 export GSDL3HOME
    34 export GSDL3SRCHOME
    35 GSDLOS=`uname -s | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
    36 # check for running bash under cygwin
    37 if test "`echo $GSDLOS | sed 's/cygwin//'`" != "$GSDLOS" ; then
    38     GSDLOS=windows
    39 fi
    40 export GSDLOS
    41 
    42 #change this if external tomcat
    43 TOMCAT_HOME=$GSDL3SRCHOME/packages/tomcat
    44 
    45 PATH=$GSDL3SRCHOME/bin/script:$GSDL3SRCHOME/bin:$PATH
    46 export PATH
    47 MANPATH=$MANPATH:$GSDL3SRCHOME/doc/man
    48 export MANPATH
    49 
    50 CLASSPATH=$GSDL3HOME/WEB-INF/classes:$GSDL3SRCHOME/resources/java:$CLASSPATH
    51 for JARFILE in $GSDL3SRCHOME/*.jar; do
    52     CLASSPATH=$CLASSPATH:$JARFILE
    53 done
    54 for JARFILE in $GSDL3SRCHOME/lib/jni/*.jar; do
    55     CLASSPATH=$CLASSPATH:$JARFILE
    56 done
    57 for JARFILE in $GSDL3HOME/WEB-INF/lib/*.jar; do
    58     CLASSPATH=$CLASSPATH:$JARFILE
    59 done
    60 for JARFILE in $TOMCAT_HOME/common/endorsed/*.jar; do
    61     CLASSPATH=$CLASSPATH:$JARFILE
    62 done   
    63 for JARFILE in $GSDL3SRCHOME/build/*.jar; do
    64     CLASSPATH=$CLASSPATH:$JARFILE
    65 done
    66 
    67 export CLASSPATH
    68 
    69 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GSDL3SRCHOME/lib/jni
    70 export LD_LIBRARY_PATH
    71 ## for mac
    72 DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$GSDL3SRCHOME/lib/jni
    73 export DYLD_LIBRARY_PATH
     9java_min_version=1.5.0_00
    7410
    7511
    76 # see if we can find java
    77 java="java"
    78 jfound=1
    79 jok=1
    80 # if JAVAHOME or JAVA_HOME is set we'll use it to determine where java lives, otherwise
    81 #  we just hope it's on the search path
    82 if [ "$JAVA_HOME" != "" ] ; then
    83     java="$JAVA_HOME/bin/java"
    84 elif [ "$JAVAHOME" != "" ] ; then
    85     java="$JAVAHOME/bin/java"
    86     export JAVA_HOME=$JAVAHOME
    87 else
    88     java=`which java 2> /dev/null`
    89     if [ ! -x "$java" ]; then
    90     echo "Failed to locate Java. You must install a java runtime environment"
    91     echo "(version 1.4 or greater) before installing Greenstone 3."
    92     jfound=0
    93     jok=0
    94     else
    95     export JAVA_HOME=`echo $java | sed -n 's/[\\\/]bin[\\\/]java$//p'`
    96     fi
    97 fi
    98 if [ $jfound -eq 1 ]; then
    99     javaversion=`$java -version 2>&1 | sed -n 's/^java version \"\(.*\)\"/\1/p'`
    100     jvmajor=`echo $javaversion | sed -n 's/^\([0-9]*\).*$/\1/p'`
    101     jvminor=`echo $javaversion | sed -n 's/^[0-9]*\.\([0-9]*\).*$/\1/p'`
    102    
    103     if [ $jvmajor -lt 1 ] ; then
    104     jok=0
    105     fi
    106     if [ $jvmajor -eq 1 ] && [ $jvminor -lt 4 ] ; then
    107     jok=0
    108     fi
    109 fi
     12function testSource(){
    11013
    111 if [ $jfound -eq 1 ] && [ $jok -eq 0 ] ; then
    112     echo "The version of the java runtime environment you have installed is too"
    113     echo "old to run Greenstone 3. Please install a new version of the JRE (version"
    114     echo "1.4 or newer) and rerun this installation."
    115 else
    116     echo "Your environment has successfully been set up to run Greenstone3"
    117 fi
     14  if test "$0" != "`echo $0 | sed s/gs3-setup\.sh//`" ; then
     15  # if $0 contains "gs3-setup.sh" we've been run... $0 is shellname if sourced.
     16  # One exception is zsh has an option to set it temporarily to the script name
     17    if test -z "$ZSH_NAME" ; then
     18    # we aren't using zsh
     19     gsdl_not_sourced=true
     20   fi
     21  fi
    11822
    119 #do we need to check for perl???
    120 # make sure perl is ok
    121 #perl=`which perl 2> /dev/null`
    122 # echo "perl: $perl"
    123 #if [ ! -x "$perl" ] ; then
    124 #    echo "Greenstone 3 requires perl in order to operate but this installation"
    125 #    echo "could not detect perl on your system. Please ensure that perl is installed"
    126 #    echo "and is on your search path then rerun this installation script."
    127 #    exit 1
    128 #fi
     23  if test -n "$gsdl_not_sourced" ; then
     24     echo " Error: Make sure you source this script, not execute it. Eg:"
     25     echo "     $ source gs3-setup.sh"
     26     echo " or"
     27     echo "     $ . gs3-setup.sh"
     28     echo " not"
     29     echo "     $ ./gs3-setup.sh"
     30     unset gsdl_not_sourced
     31     exit 1
     32  fi
     33
     34  if test ! -f gs3-setup.sh ; then
     35    echo "You must source the script from within the Greenstone home directory"
     36    exit 1
     37  fi
     38
     39}
     40
     41function setGS3ENV() {
     42
     43    echo "Setting up your environment for Greenstone3"
     44    ## main greenstone environment variables ##
     45    GSDL3SRCHOME=`pwd`
     46    GSDL3HOME=$GSDL3SRCHOME/web
     47    export GSDL3HOME
     48    export GSDL3SRCHOME
     49
     50    GSDLOS=`uname -s | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
     51    # check for running bash under cygwin
     52    if test "`echo $GSDLOS | sed 's/cygwin//'`" != "$GSDLOS" ; then
     53        GSDLOS=windows
     54    fi
     55    export GSDLOS
     56    echo "  - Exported GSDL3HOME, GSDL3SRCHOME and GSDLOS"
     57
     58    #change this if external tomcat
     59    TOMCAT_HOME=$GSDL3SRCHOME/packages/tomcat
    12960
    13061
     62    ## adjustments to users (existing) environment ##
    13163
     64    #PATH
     65    if [ `isinpath "$PATH" "$GSDL3SRCHOME/bin"` == "false" ]; then
     66        PATH=$GSDL3SRCHOME/bin/script:$GSDL3SRCHOME/bin:$PATH
     67        export PATH
     68        MANPATH=$MANPATH:$GSDL3SRCHOME/doc/man
     69        export MANPATH
     70        echo "  - Adjusted PATH"
     71    else
     72        echo "  - PATH already correct"
     73    fi
    13274
     75    #CLASSPATH
     76    if [ `isinpath "$CLASSPATH" "$GSDL3HOME/WEB-INF/classes"` == "false" ]; then
     77        CLASSPATH=$GSDL3HOME/WEB-INF/classes:$GSDL3SRCHOME/resources/java:$CLASSPATH
     78        for JARFILE in $GSDL3SRCHOME/*.jar; do
     79            CLASSPATH=$CLASSPATH:$JARFILE
     80        done
     81        for JARFILE in $GSDL3SRCHOME/lib/jni/*.jar; do
     82            CLASSPATH=$CLASSPATH:$JARFILE
     83        done
     84        for JARFILE in $GSDL3HOME/WEB-INF/lib/*.jar; do
     85            CLASSPATH=$CLASSPATH:$JARFILE
     86        done
     87        for JARFILE in $TOMCAT_HOME/common/endorsed/*.jar; do
     88            CLASSPATH=$CLASSPATH:$JARFILE
     89        done   
     90        for JARFILE in $GSDL3SRCHOME/build/*.jar; do
     91            CLASSPATH=$CLASSPATH:$JARFILE
     92        done
     93        export CLASSPATH
     94        echo "  - Adjusted CLASSPATH"
     95    else
     96        echo "  - CLASSPATH already correct"
     97    fi
     98
     99    #LD_LIBRARY_PATH
     100    if [ `isinpath "$LD_LIBRARY_PATH" "$GSDL3SRCHOME/lib/jni"` == "false" ]; then
     101        LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GSDL3SRCHOME/lib/jni
     102        export LD_LIBRARY_PATH
     103        DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$GSDL3SRCHOME/lib/jni
     104        export DYLD_LIBRARY_PATH
     105        echo "  - Adjusted LD_LIBRARY_PATH"
     106    else
     107        echo "  - LD_LIBRARY_PATH already correct"
     108    fi
     109
     110    #ant
     111    which ant &> /dev/null
     112    if [ "$?" != "0" ]; then
     113            ANT_HOME=$GSDL3SRCHOME/packages/ant
     114            PATH=$ANT_HOME/bin:$PATH
     115        echo "  - Setup ant"
     116    else
     117        echo "  - Ant already setup"
     118    fi
     119
     120    echo
     121}
     122
     123function checkJava() {
     124    echo "Checking Java"
     125
     126  bin/search4j -m $java_min_version &> /dev/null
     127  if [ "$?" != "0" ]; then
     128
     129        #java is not set up already
     130      bin/search4j -m $java_min_version -h packages/jre &> /dev/null
     131      if [ "$?" == "0" ]; then
     132            #bundled java exists, set up
     133            export JAVA_HOME=`pwd`/packages/jre
     134        echo "  - Exported JAVA_HOME to point to bundled java"
     135        else
     136            #no java exists
     137        echo "  - Failed to locate java ($java_min_version or greater)"
     138            bin/search4j &> /dev/null; if [ "$?" == "0" ]; then echo "  (It looks like you hava java but it's too old)"; fi
     139            echo "  - Please set JAVA_HOME or JRE_HOME to point to an appropriate java"
     140        echo "    And add JAVA_HOME/bin or JRE_HOME/bin to your PATH"
     141        fi
     142
     143    else
     144
     145        #java is already set up
     146        echo "  - Found java at: `bin/search4j -m $java_min_version`"
     147
     148  fi
     149    echo
     150}
     151
     152function pauseAndExit(){
     153 echo -n "Please press any key to continue... "
     154 read
     155}
     156
     157function isinpath() {
     158    for file in `echo $1 | sed 's/:/ /g'`; do
     159        if [ "$file" == "$2" ]; then
     160            echo true
     161            return
     162        fi
     163    done
     164    echo false
     165}
     166
     167echo
     168testSource
     169setGS3ENV
     170checkJava
Note: See TracChangeset for help on using the changeset viewer.