source: main/trunk/greenstone2/setup.bash@ 32003

Last change on this file since 32003 was 31972, checked in by ak19, 7 years ago

GS2 on Mac now comes with a bundled JRE, since Maverick or Yosemite onwards, we're not guaranteed to have a system Java. So now GS2 needs to also set the Java env vars to the JAVA found (JRE_HOME or JAVA_HOME, and update PATH). This is necessary if GLI for instance needs to build a lucene collection, which requires java in the environment to launch it.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 11.3 KB
Line 
1#!/bin/bash
2# if this file is executed, /bin/sh is used, as we don't start with #!
3# this should work under ash, bash, zsh, ksh, sh style shells.
4gsdllang=""
5# encoding inputs and outputs
6gsdltoenc=""
7gsdlfromenc=""
8
9# see if the shell has any language environment variables set
10# see locale(7) manpage for this ordering.
11if test ! -z "$LC_ALL" ; then
12 gsdllang="$LC_ALL"
13elif test ! -z "$LANG"; then
14 gsdllang="$LANG"
15fi
16
17
18# note... all our output strings have the charset hard-coded, but
19# people may be using a different encoding in their terminal. LANG
20# strings look like "en_NZ.UTF-8".
21
22# Determine the requested output encoding
23case $gsdllang in
24 *.*)
25 gsdltoenc=`echo $gsdllang | sed 's/.*\.//'`
26 ;;
27esac
28
29# Our french and spanish strings are currently in iso-8859-1 encoding.
30case $gsdllang in
31 fr*|FR*)
32 gsdllang=fr
33 gsdlfromenc="iso-8859-1"
34 ;;
35 es*|ES*)
36 gsdllang=es
37 gsdlfromenc="iso-8859-1"
38 ;;
39 ru*|RU*)
40 gsdllang=ru
41 gsdlfromenc="koi8r"
42 ;;
43 *) # default
44 gsdllang=en
45 gsdlfromenc="iso-8859-1"
46 ;;
47esac
48
49# "iconv" is the program for converting text between encodings.
50gsdliconv=`which iconv 2>/dev/null`
51if test $? -ne 0 || test ! -x "$gsdliconv" || test -z "$gsdlfromenc" || test -z "$gsdltoenc"; then
52# we can't convert encodings from some reason
53 gsdliconv="cat"
54else
55# add the encodings
56 gsdliconv="$gsdliconv -f $gsdlfromenc -t $gsdltoenc"
57fi
58
59# make sure we are sourced, and not run
60
61if test "$0" != "`echo $0 | sed s/setup\.bash//`" ; then
62# if $0 contains "setup.bash" we've been run... $0 is shellname if sourced.
63# One exception is zsh has an option to set it temporarily to the script name
64 if test -z "$ZSH_NAME" ; then
65 # we aren't using zsh
66 gsdl_not_sourced=true
67 fi
68fi
69
70if test -n "$gsdl_not_sourced" ; then
71 case "$gsdllang" in
72 "es")
73eval $gsdliconv <<EOF
74 Error: Asegúrese de compilar este guión, no de ejecutarlo. P. ej.:
75 $ source setup.bash
76 o
77 $ . ./setup.bash
78 no
79 $ ./setup.bash
80EOF
81 ;;
82 "fr")
83eval $gsdliconv <<EOF
84 Erreur: Assurez-vous de "sourcer" le script, plutôt que de l'exécuter. Ex:
85 $ source setup.bash
86 ou
87 $ . ./setup.bash
88 pas
89 $ ./setup.bash
90EOF
91 ;;
92 "ru")
93eval $gsdliconv <<EOF
94 ïÛÉÂËÁ: õÄÏÓÔÏ×ÅÒØÔÅÓØ × ÉÓÔÏÞÎÉËÅ ÜÔÏÇÏ ÓËÒÉÐÔÁ. îÅ ÉÓÐÏÌÎÑÊÔÅ ÅÇÏ.
95 îÁÐÒÉÍÅÒ:
96 $ source setup.bash
97 ÉÌÉ
98 $ . ./setup.bash
99 ÎÅÔ
100 $ ./setup.bash
101EOF
102 ;;
103 *)
104eval $gsdliconv <<EOF
105 Error: Make sure you source this script, not execute it. Eg:
106 $ source setup.bash
107 or
108 $ . ./setup.bash
109 not
110 $ ./setup.bash
111EOF
112 ;;
113 esac
114elif test -n "$GSDLHOME" ; then
115 case "$gsdllang" in
116 "es")
117 echo '¡Su ambiente ya está listo para Greenstone!' | eval $gsdliconv
118 ;;
119 "fr")
120 echo 'Votre environnement est déjà préparé pour Greenstone!' | eval $gsdliconv
121 ;;
122 "ru")
123 echo '÷ÁÛÅ ÏËÒÕÖÅÎÉÅ ÕÖÅ ÎÁÓÔÒÏÅÎÏ ÄÌÑ Greenstone!' | eval $gsdliconv
124 ;;
125 *)
126 echo 'Your environment is already set up for Greenstone!'
127 ;;
128 esac
129elif test ! -f setup.bash ; then
130 case "$gsdllang" in
131 "es")
132eval $gsdliconv <<EOF
133Usted debe compilar el guión desde el interior del directorio de inicio
134de Greenstone.
135EOF
136 ;;
137 "fr")
138echo 'Vous devez trouver la source du script dans le répertoire de base de Greenstone' | eval $gsdliconv
139 ;;
140 "ru")
141eval $gsdliconv <<EOF
142÷ÁÍ ÎÅÏÂÈÏÄÉÍ ÉÓÔÏÞÎÉË ÓËÒÉÐÔÁ ÉÚ ÂÁÚÏ×ÏÊ ÄÉÒÅËÔÏÒÉÉ Greenstone
143EOF
144 ;;
145 *)
146 echo 'You must source the script from within the Greenstone home directory'
147 ;;
148 esac
149else
150 GSDLHOME=`pwd`
151 export GSDLHOME
152
153 if test "x$GSDLOS" = "x" ; then
154 GSDLOS=`uname -s | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
155 # check for running bash under cygwin
156 if test "`echo $GSDLOS | sed 's/cygwin//'`" != "$GSDLOS" ;
157 then
158 GSDLOS=windows
159 fi
160 fi
161 export GSDLOS
162
163 # check for running bash under mingw
164 if test "`echo $GSDLOS | sed 's/mingw//'`" != "$GSDLOS" ;
165 then
166 GSDLOS=windows
167 fi
168 export GSDLOS
169
170 # Establish cpu architecture
171 # 32-bit or 64-bit?
172 UNAME_HW_MACH=`uname -m`
173
174# Original test
175# if test "`echo x$UNAME_HW_MACH | sed 's/^x.*_64$/x/'`" == "x" ;
176# then
177# GSDLARCH=64
178# else
179# GSDLARCH=32
180# fi
181
182 # Following test came from VirtualBox's Guest Additions autostart.sh
183 # (adapted for use in Greenstone)
184 case "$UNAME_HW_MACH" in
185 i[3456789]86|x86|i86pc)
186 GSDLARCH='32'
187 ;;
188 x86_64|amd64|AMD64)
189 GSDLARCH='64'
190 ;;
191 *)
192 echo "Unknown architecture: $UNAME_HW_MACH"
193 ;;
194 esac
195
196 # Only want non-trival GSDLARCH value set if there is evidence of
197 # the installed bin (lib, ...) directories using linux32, linux64
198 # (otherwise probably looking at an SVN compiled up version for single OS)
199 if test ! -d "$GSDLHOME/bin/$GSDLOS$GSDLARCH" ;
200 then
201 GSDLARCH=""
202 fi
203
204 export GSDLARCH
205
206 PATH=$GSDLHOME/bin/script:$GSDLHOME/bin/$GSDLOS$GSDLARCH:$PATH
207 export PATH
208
209 if test "$GSDLOS" = "linux" ; then
210 LD_LIBRARY_PATH="$GSDLHOME/lib/$GSDLOS$GSDLARCH:$LD_LIBRARY_PATH"
211 export LD_LIBRARY_PATH
212 elif test "$GSDLOS" = "darwin" ; then
213 DYLD_LIBRARY_PATH="$GSDLHOME/lib/$GSDLOS$GSDLARCH:$DYLD_LIBRARY_PATH"
214 export DYLD_LIBRARY_PATH
215 fi
216
217 # Override Imagemagick and Ghostscript paths to the bundled applications shipped with greenstone if they exists otherwise use default environment variables.
218
219# Imagemagick env vars are set in bin\script\gs-magick.pl
220
221
222 # Note: Ghostscript is only bundled with Greenstone on Mac and Windows, not on Linux. The code below should be used only for the Darwin platform
223 # for Windows please see setup.bat
224if test -d "$GSDLHOME/bin/$GSDLOS$GSDLARCH/ghostscript" ; then
225 PATH="$GSDLHOME/bin/$GSDLOS$GSDLARCH/ghostscript/bin":"$PATH"
226 export PATH
227
228 GS_LIB="$GSDLHOME/bin/$GSDLOS$GSDLARCH/ghostscript/share/ghostscript/8.63/lib"
229 export GS_LIB
230
231 GS_FONTPATH="$GSDLHOME/bin/$GSDLOS$GSDLARCH/ghostscript/share/ghostscript/8.63/Resource/Font"
232 export GS_FONTPATH
233fi
234
235
236
237 MANPATH=$MANPATH:$GSDLHOME/packages/mg/man
238 export MANPATH
239 case "$gsdllang" in
240 "es")
241 echo 'Su ambiente ha sido configurado para correr los programas Greenstone.' | eval $gsdliconv
242 ;;
243 "fr")
244 echo 'Votre environnement a été configuére avec succès pour exécuter Greenstone' | eval $gsdliconv
245 ;;
246 "ru")
247eval $gsdliconv <<EOF
248÷ÁÛÅ ÏËÒÕÖÅÎÉÅ ÂÙÌÏ ÕÓÐÅÛÎÏ ÎÁÓÔÒÏÅÎÏ, ÞÔÏÂÙ ÕÓÔÁÎÏ×ÉÔØ Greenstone
249EOF
250 ;;
251 *)
252 echo 'Your environment has successfully been set up to run Greenstone'
253 ;;
254 esac
255fi
256unset gsdl_not_sourced
257unset gsdliconv
258unset gsdlfromenc
259unset gsdltoenc
260
261if test "x$gsopt_noexts" != "x1" ; then
262 if test -e ext; then
263 for gsdl_ext in ext/*; do
264 if test -d $gsdl_ext; then
265 cd $gsdl_ext > /dev/null
266 if test -e setup.bash ; then
267 source ./setup.bash
268 fi
269 cd ../..
270 fi
271 done
272 fi
273fi
274
275if test -e apache-httpd ; then
276 echo "+Adding in executable path for apache-httpd"
277 PATH=$GSDLHOME/apache-httpd/$GSDLOS$GSDLARCH/bin:$PATH
278 export PATH
279
280 if test "$GSDLOS" = "linux" ; then
281 LD_LIBRARY_PATH="$GSDLHOME/apache-httpd/$GSDLOS$GSDLARCH/lib:$LD_LIBRARY_PATH"
282 export LD_LIBRARY_PATH
283
284 elif test "$GSDLOS" = "darwin" ; then
285 DYLD_LIBRARY_PATH="$GSDLHOME/apache-httpd/$GSDLOS$GSDLARCH/lib:$DYLD_LIBRARY_PATH"
286 export DYLD_LIBRARY_PATH
287 fi
288fi
289
290if test -e local ; then
291 if test -e local/setup.bash ; then
292 echo "Sourcing local/setup.bash"
293 cd local ; source setup.bash ; cd ..
294 fi
295
296 PATH=$GSDLHOME/local/bin:$PATH
297 export PATH
298 LD_LIBRARY_PATH=$GSDLHOME/local/lib:$LD_LIBRARY_PATH
299 export LD_LIBRARY_PATH
300fi
301
302# Only for GS2: work out java, and if the bundled jre is found, then set Java env vars with it
303# Then the same java will be consistently available for all aspects of GS2 (server or GLI, and any subshells these launch)
304if [ "x$GSDL3SRCHOME" = "x" ] ; then
305 echo "@@@@ SETUP.BASH: Found GS2 installation"
306
307 SEARCH4J_EXECUTABLE="$GSDLHOME/bin/$GSDLOS$GSDLARCH/search4j"
308 if [ -f "$SEARCH4J_EXECUTABLE" ]; then
309 MINIMUM_JAVA_VERSION=1.5.0_00
310
311 # Give search4j a hint to find Java depending on the platform
312 # we now include a JRE with Mac (Mountain) Lion, because from Yosemite onwards there's no system Java on Macs
313 HINT=`cd "$GSDLHOME";pwd`/packages/jre
314
315 # we can't use boolean operator -a to do the AND, since it doesn't "short-circuit" if the first test fails
316 # see http://www.tldp.org/LDP/abs/html/comparison-ops.html
317 if [ "x$GSDLOS" = "xdarwin" ] && [ ! -d "$HINT" ]; then
318 # http://java.dzone.com/articles/java-findingsetting
319 # explains that /usr/libexec/java_home will print the default JDK
320 # regardless of which Mac OS we're on. Tested on Maverick, Lion, Leopard
321 # (run `/usr/libexec/java_home -v 1.7` to find a specific version)
322 HINT=`/usr/libexec/java_home`
323 fi
324
325 javahome="`"$SEARCH4J_EXECUTABLE" -p "$HINT" -m $MINIMUM_JAVA_VERSION`"
326 BUNDLED_JRE="$GSDLHOME/packages/jre"
327
328 if [ "$?" != "0" ]; then
329 echo "setup.bash: Could not find Java in the environment or installation."
330 echo "Set JAVA_HOME or JRE_HOME, and put it on the PATH, if working with Java tools like Lucene."
331 elif [ "x$javahome" != "x$BUNDLED_JRE" ]; then
332 if [ "x$JAVA_HOME" = "x" ]; then
333 # if Java env vars not already set, then set them to the $javahome found
334 echo "Found a Java on the system. Setting up GS2's Java environment to use this"
335 export JAVA_HOME=$javahome
336 export PATH=$JAVA_HOME/bin:$PATH
337 fi
338 # else JAVA_HOME, and PATH presumably too, would already be set
339 elif [ -d "$GSDLHOME/packages/jre" ]; then
340 echo "Found a bundled JRE. Setting up GS2's Java environment to use this"
341 export JRE_HOME=$GSDLHOME/packages/jre
342 export PATH=$JRE_HOME/bin:$PATH
343 else
344 # can we ever really get here?
345 echo "Java environment not set and bundled JRE doesn't exist. Some tools need the Java environment. Proceeding without..."
346 fi
347 fi
348fi
349
350# if the Perl-for-greenstone tarfile has been installed in the bin/linux
351# folder, then we set things up to use that, instead of a system perl
352if [ -d "$GSDLHOME/bin/$GSDLOS$GSDLARCH/perl" ] ; then
353
354 if [ -d "$GSDLHOME/bin/$GSDLOS$GSDLARCH/perl/bin" ] ; then
355 PERLPATH=$GSDLHOME/bin/$GSDLOS$GSDLARCH/perl/bin
356 export PERLPATH
357 PATH=$PERLPATH:$PATH
358 export PATH
359 fi
360
361 if test "$GSDLOS" = "linux" ; then
362 LD_LIBRARY_PATH=$GSDLHOME/bin/$GSDLOS$GSDLARCH/perl/lib/5.8.9/i686-linux-thread-multi/CORE:$LD_LIBRARY_PATH
363 export LD_LIBRARY_PATH
364 elif test "$GSDLOS" = "darwin" ; then
365 DYLD_LIBRARY_PATH=$GSDLHOME/bin/$GSDLOS$GSDLARCH/perl/lib/5.8.9/darwin-thread-multi-2level/CORE:$DYLD_LIBRARY_PATH
366 export DYLD_LIBRARY_PATH
367 fi
368
369 if [ "x$PERL5LIB" = "x" ] ; then
370 PERL5LIB=$GSDLHOME/bin/$GSDLOS$GSDLARCH/perl/lib
371 else
372 PERL5LIB=$GSDLHOME/bin/$GSDLOS$GSDLARCH/perl/lib:$PERL5LIB
373 fi
374 export PERL5LIB
375
376 echo ""
377 echo "***** Perl installation detected inside Greenstone."
378 echo "Command-line scripts need to be run with \"perl -S ...\""
379 echo " e.g. perl -S import.pl -removeold demo"
380 echo ""
381# else we may in future need to update PERL5LIB with some other (further) locations
382fi
383
384# Perl >= v5.18.* randomises map iteration order within a process
385export PERL_PERTURB_KEYS=0
386
387# turn off certificate errors when using wget to retrieve over https
388# (to avoid turning it off with the --no-check-certificate flag to each wget cmd)
389# See https://superuser.com/questions/508696/wget-without-no-check-certificate
390# https://www.gnu.org/software/wget/manual/html_node/Wgetrc-Location.html
391export WGETRC=$GSDLHOME/bin/$GSDLOS/wgetrc
Note: See TracBrowser for help on using the repository browser.