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

Last change on this file since 32001 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
RevLine 
[19156]1#!/bin/bash
[2719]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.
[6774]4gsdllang=""
[6892]5# encoding inputs and outputs
6gsdltoenc=""
7gsdlfromenc=""
[2719]8
[6774]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
[6892]12 gsdllang="$LC_ALL"
[6774]13elif test ! -z "$LANG"; then
[6892]14 gsdllang="$LANG"
[6774]15fi
16
[6892]17
[6774]18# note... all our output strings have the charset hard-coded, but
19# people may be using a different encoding in their terminal. LANG
[6892]20# strings look like "en_NZ.UTF-8".
[6774]21
[6892]22# Determine the requested output encoding
23case $gsdllang in
24 *.*)
25 gsdltoenc=`echo $gsdllang | sed 's/.*\.//'`
26 ;;
27esac
28
[6774]29# Our french and spanish strings are currently in iso-8859-1 encoding.
30case $gsdllang in
31 fr*|FR*)
32 gsdllang=fr
[6892]33 gsdlfromenc="iso-8859-1"
[6774]34 ;;
35 es*|ES*)
36 gsdllang=es
[6892]37 gsdlfromenc="iso-8859-1"
[6774]38 ;;
39 ru*|RU*)
40 gsdllang=ru
[6892]41 gsdlfromenc="koi8r"
[6774]42 ;;
43 *) # default
44 gsdllang=en
[6892]45 gsdlfromenc="iso-8859-1"
[6774]46 ;;
47esac
48
[6892]49# "iconv" is the program for converting text between encodings.
50gsdliconv=`which iconv 2>/dev/null`
[8734]51if test $? -ne 0 || test ! -x "$gsdliconv" || test -z "$gsdlfromenc" || test -z "$gsdltoenc"; then
[6892]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
[2719]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
[2709]68fi
[2719]69
70if test -n "$gsdl_not_sourced" ; then
[6774]71 case "$gsdllang" in
72 "es")
[6892]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
[6774]81 ;;
82 "fr")
[6892]83eval $gsdliconv <<EOF
[7029]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
[6892]90EOF
[6774]91 ;;
92 "ru")
[6892]93eval $gsdliconv <<EOF
94 ïÛÉÂËÁ: õÄÏÓÔÏ×ÅÒØÔÅÓØ × ÉÓÔÏÞÎÉËÅ ÜÔÏÇÏ ÓËÒÉÐÔÁ. îÅ ÉÓÐÏÌÎÑÊÔÅ ÅÇÏ.
95 îÁÐÒÉÍÅÒ:
96 $ source setup.bash
97 ÉÌÉ
98 $ . ./setup.bash
99 ÎÅÔ
100 $ ./setup.bash
101EOF
[6774]102 ;;
103 *)
[6892]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
[6774]112 ;;
113 esac
[2719]114elif test -n "$GSDLHOME" ; then
[6774]115 case "$gsdllang" in
116 "es")
[6892]117 echo '¡Su ambiente ya está listo para Greenstone!' | eval $gsdliconv
[6774]118 ;;
119 "fr")
[6892]120 echo 'Votre environnement est déjà préparé pour Greenstone!' | eval $gsdliconv
[6774]121 ;;
122 "ru")
[6892]123 echo '÷ÁÛÅ ÏËÒÕÖÅÎÉÅ ÕÖÅ ÎÁÓÔÒÏÅÎÏ ÄÌÑ Greenstone!' | eval $gsdliconv
[6774]124 ;;
125 *)
[6820]126 echo 'Your environment is already set up for Greenstone!'
[6774]127 ;;
128 esac
[2719]129elif test ! -f setup.bash ; then
[6774]130 case "$gsdllang" in
131 "es")
[6892]132eval $gsdliconv <<EOF
133Usted debe compilar el guión desde el interior del directorio de inicio
134de Greenstone.
135EOF
[6774]136 ;;
137 "fr")
[6892]138echo 'Vous devez trouver la source du script dans le répertoire de base de Greenstone' | eval $gsdliconv
[6774]139 ;;
140 "ru")
[6892]141eval $gsdliconv <<EOF
142÷ÁÍ ÎÅÏÂÈÏÄÉÍ ÉÓÔÏÞÎÉË ÓËÒÉÐÔÁ ÉÚ ÂÁÚÏ×ÏÊ ÄÉÒÅËÔÏÒÉÉ Greenstone
143EOF
[6774]144 ;;
145 *)
[6820]146 echo 'You must source the script from within the Greenstone home directory'
[6774]147 ;;
148 esac
[2719]149else
[2906]150 GSDLHOME=`pwd`
151 export GSDLHOME
[26794]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
[2719]160 fi
[2906]161 export GSDLOS
162
[23878]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
[23947]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
[2906]207 export PATH
[18188]208
[23588]209 if test "$GSDLOS" = "linux" ; then
[23947]210 LD_LIBRARY_PATH="$GSDLHOME/lib/$GSDLOS$GSDLARCH:$LD_LIBRARY_PATH"
[23588]211 export LD_LIBRARY_PATH
212 elif test "$GSDLOS" = "darwin" ; then
[23947]213 DYLD_LIBRARY_PATH="$GSDLHOME/lib/$GSDLOS$GSDLARCH:$DYLD_LIBRARY_PATH"
[23588]214 export DYLD_LIBRARY_PATH
215 fi
[20933]216
[17667]217 # Override Imagemagick and Ghostscript paths to the bundled applications shipped with greenstone if they exists otherwise use default environment variables.
218
[24610]219# Imagemagick env vars are set in bin\script\gs-magick.pl
[17667]220
[17673]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
[23947]224if test -d "$GSDLHOME/bin/$GSDLOS$GSDLARCH/ghostscript" ; then
225 PATH="$GSDLHOME/bin/$GSDLOS$GSDLARCH/ghostscript/bin":"$PATH"
[17673]226 export PATH
[17667]227
[23947]228 GS_LIB="$GSDLHOME/bin/$GSDLOS$GSDLARCH/ghostscript/share/ghostscript/8.63/lib"
[17673]229 export GS_LIB
[17667]230
[23947]231 GS_FONTPATH="$GSDLHOME/bin/$GSDLOS$GSDLARCH/ghostscript/share/ghostscript/8.63/Resource/Font"
[17673]232 export GS_FONTPATH
[17667]233fi
234
[23588]235
[17667]236
[2906]237 MANPATH=$MANPATH:$GSDLHOME/packages/mg/man
238 export MANPATH
[6774]239 case "$gsdllang" in
240 "es")
[6892]241 echo 'Su ambiente ha sido configurado para correr los programas Greenstone.' | eval $gsdliconv
[6774]242 ;;
243 "fr")
[6892]244 echo 'Votre environnement a été configuére avec succès pour exécuter Greenstone' | eval $gsdliconv
[6774]245 ;;
246 "ru")
[6892]247eval $gsdliconv <<EOF
248÷ÁÛÅ ÏËÒÕÖÅÎÉÅ ÂÙÌÏ ÕÓÐÅÛÎÏ ÎÁÓÔÒÏÅÎÏ, ÞÔÏÂÙ ÕÓÔÁÎÏ×ÉÔØ Greenstone
249EOF
[6774]250 ;;
251 *)
[6820]252 echo 'Your environment has successfully been set up to run Greenstone'
[6774]253 ;;
254 esac
[2719]255fi
256unset gsdl_not_sourced
[6892]257unset gsdliconv
258unset gsdlfromenc
259unset gsdltoenc
[14980]260
[23893]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
[21603]272 fi
[14980]273fi
274
[23726]275if test -e apache-httpd ; then
276 echo "+Adding in executable path for apache-httpd"
[23947]277 PATH=$GSDLHOME/apache-httpd/$GSDLOS$GSDLARCH/bin:$PATH
[23726]278 export PATH
279
280 if test "$GSDLOS" = "linux" ; then
[31406]281 LD_LIBRARY_PATH="$GSDLHOME/apache-httpd/$GSDLOS$GSDLARCH/lib:$LD_LIBRARY_PATH"
[23726]282 export LD_LIBRARY_PATH
283
284 elif test "$GSDLOS" = "darwin" ; then
[23947]285 DYLD_LIBRARY_PATH="$GSDLHOME/apache-httpd/$GSDLOS$GSDLARCH/lib:$DYLD_LIBRARY_PATH"
[23726]286 export DYLD_LIBRARY_PATH
287 fi
288fi
289
[17667]290if test -e local ; then
[18488]291 if test -e local/setup.bash ; then
292 echo "Sourcing local/setup.bash"
293 cd local ; source setup.bash ; cd ..
294 fi
295
[17667]296 PATH=$GSDLHOME/local/bin:$PATH
297 export PATH
298 LD_LIBRARY_PATH=$GSDLHOME/local/lib:$LD_LIBRARY_PATH
299 export LD_LIBRARY_PATH
[14980]300fi
301
[31972]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"
[14980]306
[31972]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
[20923]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
[23947]352if [ -d "$GSDLHOME/bin/$GSDLOS$GSDLARCH/perl" ] ; then
[21805]353
[24363]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
[21805]360
361 if test "$GSDLOS" = "linux" ; then
[23947]362 LD_LIBRARY_PATH=$GSDLHOME/bin/$GSDLOS$GSDLARCH/perl/lib/5.8.9/i686-linux-thread-multi/CORE:$LD_LIBRARY_PATH
[21805]363 export LD_LIBRARY_PATH
364 elif test "$GSDLOS" = "darwin" ; then
[23947]365 DYLD_LIBRARY_PATH=$GSDLHOME/bin/$GSDLOS$GSDLARCH/perl/lib/5.8.9/darwin-thread-multi-2level/CORE:$DYLD_LIBRARY_PATH
[21805]366 export DYLD_LIBRARY_PATH
367 fi
368
[20923]369 if [ "x$PERL5LIB" = "x" ] ; then
[23947]370 PERL5LIB=$GSDLHOME/bin/$GSDLOS$GSDLARCH/perl/lib
[20923]371 else
[23947]372 PERL5LIB=$GSDLHOME/bin/$GSDLOS$GSDLARCH/perl/lib:$PERL5LIB
[20923]373 fi
374 export PERL5LIB
[21805]375
[20923]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
[29372]383
384# Perl >= v5.18.* randomises map iteration order within a process
385export PERL_PERTURB_KEYS=0
[31829]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.