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

Last change on this file since 20219 was 20219, checked in by ak19, 15 years ago

Dr Bainbridge added the current directory to the CLASSPATH, as this is needed to configure the indexers during ant install successfully. Without it, compilation of the source component and source distribution fails.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 6.1 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
4#the purpose of this file is to check/set up the environment for greenstone3
5#sorts out:
6# - gsdl3home
7# - java
8
9# java_min_version gets passed to search4j as the minimum java version
10java_min_version=1.5.0_00
11
12
13function testSource(){
14
15 if test "$0" != "`echo $0 | sed s/gs3-setup\.sh//`" ; then
16 # if $0 contains "gs3-setup.sh" we've been run... $0 is shellname if sourced.
17 # One exception is zsh has an option to set it temporarily to the script name
18 if test -z "$ZSH_NAME" ; then
19 # we aren't using zsh
20 gsdl_not_sourced=true
21 fi
22 fi
23
24 if test -n "$gsdl_not_sourced" ; then
25 echo " Error: Make sure you source this script, not execute it. Eg:"
26 echo " $ source gs3-setup.sh"
27 echo " or"
28 echo " $ . gs3-setup.sh"
29 echo " not"
30 echo " $ ./gs3-setup.sh"
31 unset gsdl_not_sourced
32 exit 1
33 fi
34
35 if test ! -f gs3-setup.sh ; then
36 echo "You must source the script from within the Greenstone home directory"
37 return 1
38 fi
39 return 0
40}
41
42# if GSDL3SRCHOME is set, then we assume that we have already sourced the
43# script so don't do it again. UNLESS, GSDL3SRCHOME doesn't match the
44# current directory in which case it was a different gs3 installation, so lets
45# do it now.x
46function testAlreadySourced() {
47 if [ ! -z "$GSDL3SRCHOME" ]; then
48 localgs3sourcehome="`pwd`"
49 if [ "$GSDL3SRCHOME" == "$localgs3sourcehome" ]; then
50 echo "Your environment is already set up for Greenstone3"
51 return 1
52 fi
53 echo "Your environment was set up for Greenstone 3 in $GSDL3SRCHOME."
54 echo "Overwriting that set up for the current Greenstone 3 in $localgs3sourcehome"
55 fi
56 return 0
57}
58
59function setGS3ENV() {
60
61 echo "Setting up your environment for Greenstone3"
62 ## main greenstone environment variables ##
63 GSDL3SRCHOME="`pwd`"
64 GSDL3HOME="$GSDL3SRCHOME/web"
65 export GSDL3HOME
66 export GSDL3SRCHOME
67
68 GSDLOS=`uname -s | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
69 # check for running bash under cygwin
70 if test "`echo $GSDLOS | sed 's/cygwin//'`" != "$GSDLOS" ; then
71 GSDLOS=windows
72 fi
73 export GSDLOS
74 echo " - Exported GSDL3HOME, GSDL3SRCHOME and GSDLOS"
75
76 #change this if external tomcat
77 TOMCAT_HOME="$GSDL3SRCHOME/packages/tomcat"
78
79
80 ## adjustments to users (existing) environment ##
81
82 #PATH
83 addtopath PATH "$GSDL3SRCHOME/bin/script"
84 addtopath PATH "$GSDL3SRCHOME/bin"
85 echo " - Adjusted PATH"
86
87 #MANPATH
88 addtopath MANPATH "$GSDL3SRCHOME/doc/man"
89 echo " - Adjusted MANPATH"
90
91 #CLASSPATH
92 addtopath CLASSPATH "$GSDL3HOME/WEB-INF/classes"
93 addtopath CLASSPATH "$GSDL3SRCHOME/resources/java"
94 addtopath CLASSPATH "$GSDL3SRCHOME/cp.jar"
95
96 # Tomcat 5 jar files
97 for JARFILE in "$TOMCAT_HOME"/common/endorsed/*.jar; do
98 addtopath CLASSPATH "$JARFILE"
99 done
100 # Tomcat 6 jar files
101 for JARFILE in "$TOMCAT_HOME"/lib/*.jar; do
102 addtopath CLASSPATH "$JARFILE"
103 done
104
105 #shouldn't need these as they will have been copied to their correct locations elsewhere in the greenstone3 installation
106 #for JARFILE in "$GSDL3SRCHOME"/build/*.jar; do
107 # addtopath CLASSPATH "$JARFILE"
108 #done
109
110 addtopath CLASSPATH "."
111 echo " - Adjusted CLASSPATH"
112
113 #LD_LIBRARY_PATH
114 addtopath LD_LIBRARY_PATH "$GSDL3SRCHOME/lib/jni"
115 addtopath DYLD_LIBRARY_PATH "$GSDL3SRCHOME/lib/jni"
116 echo " - Adjusted LD_LIBRARY_PATH and DYLD_LIBRARY_PATH"
117
118 #ant
119 if [ -x "$GSDL3SRCHOME/packages/ant/bin/ant" ]; then
120 ANT_HOME="$GSDL3SRCHOME/packages/ant"
121 export ANT_HOME
122 addtopath PATH "$ANT_HOME/bin"
123 echo " - Setup Greenstone ant ($GSDL3SRCHOME/packages/ant)"
124 else
125 which ant &> /dev/null
126 if [ "$?" == "0" ]; then
127 echo " - WARNING: Greenstone 'Ant' package missing - falling back to system Ant"
128 echo " Note that Greenstone requires Ant 1.7.1 or greater"
129 else
130 echo " - ERROR: Greenstone 'Ant' package missing - please install Ant yourself"
131 echo " Note that Greenstone requires Ant 1.7.1 or greater"
132 fi
133
134 fi
135
136}
137
138function checkJava() {
139
140 HINT="`pwd`/packages/jre"
141 if [ $GSDLOS = darwin ]; then
142 HINT=/System/Library/Frameworks/JavaVM.framework/Home
143 fi
144
145 #if search4j is present, use it
146 if [ -x bin/search4j ] ; then
147 FOUNDJAVAHOME="`bin/search4j -p \"$HINT\" -m $java_min_version`"
148 if [ "$?" == "0" ]; then
149 #found a suitible java
150 setupJavaAt "$FOUNDJAVAHOME"
151 else
152 #no suitable java exists
153 echo " - ERROR: Failed to locate java $java_min_version or greater"
154 echo " Please set JAVA_HOME or JRE_HOME to point to an appropriate java"
155 echo " And add JAVA_HOME/bin or JRE_HOME/bin to your PATH"
156 fi
157
158 #otherwise manually try the hint
159 elif [ -d "$HINT" ]; then
160 #found a suitible java
161 setupJavaAt "$HINT"
162
163 #lastly, check if java already setup
164 elif [ "$JAVA_HOME" != "" ] && [ "`which java`" == "$JAVA_HOME/bin/java" ]; then
165 echo " - Using java at $JAVA_HOME"
166 elif [ "$JRE_HOME" != "" ] && [ "`which java`" == "$JRE_HOME/bin/java" ]; then
167 echo " - Using java at $JRE_HOME"
168 #failing all that, print a warning
169 else
170 #no suitable java exists
171 echo " - ERROR: Failed to locate java"
172 echo " Please set JAVA_HOME or JRE_HOME to point to an appropriate java"
173 echo " And add JAVA_HOME/bin or JRE_HOME/bin to your PATH"
174 fi
175}
176
177function setupJavaAt() {
178 export JAVA_HOME="$1"
179 addtopath PATH "$JAVA_HOME/bin"
180 echo " - Exported JAVA_HOME to $JAVA_HOME"
181}
182
183function pauseAndExit(){
184 echo -n "Please press any key to continue... "
185 read
186}
187
188function isinpath() {
189 for file in `echo $1 | sed 's/:/ /g'`; do
190 if [ "$file" == "$2" ]; then
191 echo true
192 return
193 fi
194 done
195 echo false
196}
197
198function addtopath() {
199 eval "PV=\$$1"
200 #echo "$1 += $2"
201 if [ "$PV" == "" ]; then
202 cmd="$1=\"$2\""
203 else
204 cmd="$1=\"$2:\$$1\""
205 fi
206 eval $cmd
207 eval "export $1"
208}
209
210# Note: use return not exit from a sourced script otherwise it kills the shell
211echo
212testSource
213if [ "$?" == "1" ]; then
214return
215fi
216testAlreadySourced
217if [ "$?" == "1" ]; then
218return
219fi
220setGS3ENV
221checkJava
Note: See TracBrowser for help on using the repository browser.