root/greenstone3/branches/3.03/gs3-setup.sh @ 14728

Revision 14728, 5.9 KB (checked in by qq6, 12 years ago)

looking for the JRE home first then the java home

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
Line 
1# if this file is executed, /bin/sh is used, as we don't start with #!
2# this should work under ash, bash, zsh, ksh, sh style shells.
3# make sure we are sourced, and not run
4
5export RUNJAVA=
6JRE_HOME=
7JAVA_HOME=
8CLASSPATH=$CLASSPATH
9
10function testSource(){
11  if test "$0" != "`echo $0 | sed s/gs3-setup\.sh//`" ; then
12  # if $0 contains "gs3-setup.sh" we've been run... $0 is shellname if sourced.
13  # One exception is zsh has an option to set it temporarily to the script name
14    if test -z "$ZSH_NAME" ; then
15    # we aren't using zsh
16     gsdl_not_sourced=true
17   fi
18  fi
19
20  if test -n "$gsdl_not_sourced" ; then
21     echo " Error: Make sure you source this script, not execute it. Eg:"
22     echo "     $ source gs3-setup.sh"
23     echo " or"
24     echo "     $ . ./gs3-setup.sh"
25     echo " not"
26     echo "     $ ./gs3-setup.sh"
27     unset gsdl_not_sourced
28     exit 1
29  fi
30
31  if test ! -f gs3-setup.sh ; then
32    echo "You must source the script from within the Greenstone home directory"
33    exit 1
34  fi
35}
36
37function setGS3ENV(){
38   GSDL3SRCHOME=`pwd`
39   GSDL3HOME=$GSDL3SRCHOME/web
40   export GSDL3HOME
41   export GSDL3SRCHOME
42   GSDLOS=`uname -s | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
43    # check for running bash under cygwin
44    if test "`echo $GSDLOS | sed 's/cygwin//'`" != "$GSDLOS" ; then
45        GSDLOS=windows
46    fi
47    export GSDLOS
48
49    #change this if external tomcat
50    TOMCAT_HOME=$GSDL3SRCHOME/packages/tomcat
51
52    PATH=$GSDL3SRCHOME/bin/script:$GSDL3SRCHOME/bin:$PATH
53    export PATH
54    MANPATH=$MANPATH:$GSDL3SRCHOME/doc/man
55    export MANPATH
56
57    CLASSPATH=$GSDL3HOME/WEB-INF/classes:$GSDL3SRCHOME/resources/java:$CLASSPATH
58     for JARFILE in $GSDL3SRCHOME/*.jar; do
59       CLASSPATH=$CLASSPATH:$JARFILE
60     done
61     for JARFILE in $GSDL3SRCHOME/lib/jni/*.jar; do
62        CLASSPATH=$CLASSPATH:$JARFILE
63     done
64     for JARFILE in $GSDL3HOME/WEB-INF/lib/*.jar; do
65        CLASSPATH=$CLASSPATH:$JARFILE
66     done
67     for JARFILE in $TOMCAT_HOME/common/endorsed/*.jar; do
68        CLASSPATH=$CLASSPATH:$JARFILE
69     done   
70     for JARFILE in $GSDL3SRCHOME/build/*.jar; do
71       CLASSPATH=$CLASSPATH:$JARFILE
72     done
73     export CLASSPATH
74     LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GSDL3SRCHOME/lib/jni
75     export LD_LIBRARY_PATH
76      ## for mac
77     DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$GSDL3SRCHOME/lib/jni
78     export DYLD_LIBRARY_PATH
79}
80
81function setJAVAHOME(){
82    # see if we can find java
83    java="java"
84    jfound=1
85    jok=1
86    # if JREHOME, JRE_HOME is set, we'll use it to determine where java lives
87    if [ "$JRE_HOME" != "" ]; then
88       java="$JRE_HOME/bin/java"
89       export JRE_HOME=$JRE_HOME
90    elif [ "$JREHOME" != "" ]; then
91       java="$JREHOME/bin/java"
92       export JRE_HOME=$JREHOME
93     # JAVAHOME or JAVA_HOME is set we'll use it to determine where java lives, otherwise
94     #  we just hope it's on the search path
95     elif [ "$JAVA_HOME" != "" ] ; then
96       java="$JAVA_HOME/bin/java"
97       export JAVA_HOME=$JAVA_HOME
98     elif [ "$JAVAHOME" != "" ] ; then
99       java="$JAVAHOME/bin/java"
100       export JAVA_HOME=$JAVAHOME
101    else
102        java=`which java 2> /dev/null`
103        if [ ! -x "$java" ]; then
104        echo "Failed to locate Java. You must install a java runtime environment"
105        echo "(version 1.4 or greater) before installing Greenstone 3."
106            pauseAndExit
107        else
108      export JRE_HOME=`echo $java | sed -n 's/[\\\/]bin[\\\/]java$//p'`
109        fi
110   fi
111   checkJAVAHOME
112}
113
114function checkJAVAHOME(){
115# Make sure prerequisite environment variables are set
116  if [ -z "$JAVA_HOME" -a -z "$JRE_HOME" ]; then
117    echo "Neither the JAVA_HOME nor the JRE_HOME environment variable is defined"
118    echo "At least one of these environment variable is needed to run Greenstone3" 
119    pauseAndExit
120  else # check JRE_HOME
121      if [ -n "$JRE_HOME" ]; then
122         if [ ! -x "$JRE_HOME"/bin/java ]; then
123        echo "JRE_HOME: $JRE_HOME"
124        echo "Couldn't find $JRE_HOME/bin/java"
125            echo "The JRE_HOME environment variable is not defined correctly"
126            echo "This environment variable is needed to run this program"
127        pauseAndExit
128         else
129       export RUNJAVA="$JRE_HOME"/bin/java
130           checkVersion
131         fi     
132      else
133          # check JAVA_HOME if JRE_HOME is not set   
134          if [ -n "$JAVA_HOME" ]; then
135              if [ ! -x "$JAVA_HOME"/bin/java -o ! -x "$JAVA_HOME"/bin/javac ]; then
136        echo "JAVA_HOME: $JAVA_HOME" 
137                echo "Couldn't find $JAVA_HOME/bin/java or $JAVA_HOME/bin/javac"
138                echo "The JAVA_HOME environment variable is not defined correctly"
139                echo "This environment variable is needed to run this program"
140                echo "NB: JAVA_HOME should point to a JDK not a JRE"
141        pauseAndExit
142          else
143               export RUNJAVA="$JAVA_HOME"/bin/java
144               checkVersion
145              fi
146           fi
147        fi
148  fi
149}
150
151function checkVersion(){
152if [ $jfound -eq 1 ]; then
153    javaversion=`$RUNJAVA -version 2>&1 | sed -n 's/^java version \"\(.*\)\"/\1/p'`
154    jvmajor=`echo $javaversion | sed -n 's/^\([0-9]*\).*$/\1/p'`
155    jvminor=`echo $javaversion | sed -n 's/^[0-9]*\.\([0-9]*\).*$/\1/p'`
156   
157    if [ $jvmajor -lt 1 ] ; then
158    jok=0
159    fi
160    if [ $jvmajor -eq 1 ] && [ $jvminor -lt 4 ] ; then
161    jok=0
162    fi
163fi
164
165if [ $jfound -eq 1 ] && [ $jok -eq 0 ] ; then
166    echo "The version of the java runtime environment you have installed is too"
167    echo "old to run Greenstone 3. Please install a new version of the JRE (version"
168    echo "1.4 or newer) and rerun this installation."
169    export RUNJAVA=
170    pauseAndExit
171else
172    if [ -n "$JRE_HOME" ]; then
173     echo "JRE_HOME: $JRE_HOME"
174     export PATH="$JRE_HOME"\bin:$PATH
175    fi
176    if [ -n "$JAVA_HOME" ]; then
177     echo "JAVA_HOME: $JAVA_HOME"
178     export PATH="$JAVA_HOME"\bin:$PATH
179    fi
180    echo "Your environment has successfully been set up to run Greenstone3"
181fi
182}
183
184
185function pauseAndExit(){
186 echo -n "Please press any key to continue... "
187 read
188}
189
190testSource
191setGS3ENV
192setJAVAHOME
193
194
Note: See TracBrowser for help on using the browser.