source: greenstone3/trunk/gs3-setup.sh@ 15048

Last change on this file since 15048 was 14726, checked in by qq6, 17 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
File size: 5.9 KB
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 repository browser.