source: main/trunk/greenstone2/setup.bat@ 32013

Last change on this file since 32013 was 31990, checked in by ak19, 7 years ago

Commit 31983, to make setup.bat set JAVA_HAME/JRE_HOME and put Java on PATH so that GLI can successfully run lucene_passes.pl which needs Java, did not handle spaces in the filepath when. Fixed.

File size: 10.4 KB
Line 
1@echo off
2
3setlocal enabledelayedexpansion
4
5pushd "%CD%"
6CD /D "%~dp0"
7set GSDLLANG=en
8
9echo.
10echo.
11echo #### #
12echo ## #
13echo # ### ## ## ### ### ### ## ### ##
14echo # # # #### #### # # ## # # # # # ####
15echo ## # # # # # # # # # # # # #
16echo #### # ### ### # # ### ## ## # # ###
17echo (C) 2008, New Zealand Digital Library Project
18echo.
19echo.
20echo.
21
22if "!GSDLHOME!" == "" goto start
23if "!GSDLHOME!" == "!CD!" if not "!GSDLOS!" == "" (
24 echo Your environment is already set up for Greenstone
25 goto done
26)
27
28:start
29if "!OS!" == "Windows_NT" goto WinNT
30if "!OS!" == "" goto Win95
31if "!GSDLLANG!" == "en" echo Setup failed - your PATH has not been set
32if "!GSDLLANG!" == "es" echo No se pudo realizar la configuraci¢n - no se ha establecido la RUTA.
33if "!GSDLLANG!" == "fr" echo Ech‚c de l'installation - votre variable PATH n'a pas ‚t‚ ajust‚e
34if "!GSDLLANG!" == "ru" echo “áâ ­®¢ª  ­¥ 〠« áì - “’œ ­¥ ¡ë« ãáâ ­®¢«¥­
35goto End
36
37:WinNT
38set GSDLHOME=%CD%
39set GSDLOS=windows
40
41REM Override Imagemagick and Ghostscript paths to the bundled applications shipped with greenstone if they exists otherwise use default environment variables.
42if exist "!GSDLHOME!\bin\windows\ghostscript\bin\gsdll32.dll" set GS_DLL=!GSDLHOME!\bin\windows\ghostscript\bin\gsdll32.dll
43if exist "!GSDLHOME!\bin\windows\ghostscript\lib\*.*" set GS_LIB=!GSDLHOME!\bin\windows\ghostscript\lib
44if exist "!GSDLHOME!\bin\windows\ghostscript\bin\*.*" set PATH=!GSDLHOME!\bin\windows\ghostscript\bin;!PATH!
45:: ImageMagick environment vars are now set in bin\script\gs-magick.pl
46::if exist "!GSDLHOME!\bin\windows\imagemagick\*.*" set PATH=!GSDLHOME!\bin\windows\imagemagick;!PATH!
47
48if "!GS_CP_SET!" == "yes" goto Success
49set PATH=!GSDLHOME!\bin\windows;!GSDLHOME!\bin\script;!PATH!
50if exist "!GSDLHOME!\bin\windows\perl\bin" (
51 set PERLPATH=!GSDLHOME!\bin\windows\perl\bin
52 set PATH=!PERLPATH!;!PATH!
53)
54
55set GS_CP_SET=yes
56goto Success
57
58:Win95
59if "%1" == "SetEnv" goto Win95Env
60REM We'll invoke a second copy of the command processor to make
61REM sure there's enough environment space
62COMMAND /E:2048 /K %0 SetEnv
63goto End
64
65:Win95Env
66set GSDLHOME=%CD%
67set GSDLOS=windows
68
69REM Override Imagemagick and Ghostscript paths to the bundled applications shipped with greenstone if they exists otherwise use default environment variables.
70if exist "!GSDLHOME!\bin\windows\ghostscript\bin\gsdll32.dll" set GS_DLL="!GSDLHOME!\bin\windows\ghostscript\bin\gsdll32.dll"
71if exist "!GSDLHOME!\bin\windows\ghostscript\lib\*.*" set GS_LIB="!GSDLHOME!\bin\windows\ghostscript\lib"
72if exist "!GSDLHOME!\bin\windows\ghostscript\bin\*.*" set PATH="!GSDLHOME!\bin\windows\ghostscript\bin";"!PATH!"
73:: ImageMagick environment vars are now set in bin\script\gs-magick.pl
74::if exist "!GSDLHOME!\bin\windows\imagemagick\*.*" set PATH="!GSDLHOME!\bin\windows\imagemagick";"!PATH!"
75
76if "!GS_CP_SET!" == "yes" goto Success
77set PATH=!GSDLHOME!\bin\windows;!GSDLHOME!\bin\script;!PATH!
78if exist "!GSDLHOME!\bin\windows\perl\bin" (
79 set PERLPATH=!GSDLHOME!\bin\windows\perl\bin
80 set PATH=!PERLPATH!;!PATH!
81)
82set GS_CP_SET=yes
83goto Success
84
85
86:Success
87if "!GSDLLANG!" == "en" echo.
88if "!GSDLLANG!" == "en" echo Your environment has successfully been set up to run Greenstone.
89if "!GSDLLANG!" == "en" echo Note that these settings will only have effect within this MS-DOS
90if "!GSDLLANG!" == "en" echo session. You will therefore need to rerun setup.bat if you want
91if "!GSDLLANG!" == "en" echo to run Greenstone programs from a different MS-DOS session.
92if "!GSDLLANG!" == "en" echo.
93
94if "!GSDLLANG!" == "es" echo.
95if "!GSDLLANG!" == "es" echo Su ambiente ha sido configurado para correr los programas Greenstone.
96if "!GSDLLANG!" == "es" echo Recuerde que estos ajustes £nicamente tendr n efecto dentro de esta sesi¢n
97if "!GSDLLANG!" == "es" echo MS-DOS. Por lo tanto deber  ejecutar nuevamente setup.bat si desea
98if "!GSDLLANG!" == "es" echo correr los programas de Greenstone desde una sesi¢n MS-DOS diferente.
99if "!GSDLLANG!" == "es" echo.
100
101if "!GSDLLANG!" == "fr" echo.
102if "!GSDLLANG!" == "fr" echo Votre environnement a ‚t‚ configu‚re avec succŠs pour ex‚cuter Greenstone
103if "!GSDLLANG!" == "fr" echo Notez que ces paramŠtrages n'auront d'effet que dans cette session MS-DOS.
104if "!GSDLLANG!" == "fr" echo Vous devrez par cons‚quent r‚ex‚cuter setup.bat si vous voulez faire
105if "!GSDLLANG!" == "fr" echo lancer des programmes Greenstone dans une autre session MS-DOS.
106if "!GSDLLANG!" == "fr" echo.
107
108if "!GSDLLANG!" == "ru" echo.
109if "!GSDLLANG!" == "ru" echo ‚ è¥ ®ªà㊥­š¥ ¡ë«® ãᯥ譮 ­ áâ஥­®, ç⮡ë ãáâ ­®¢šâì Greenstone Ž¡à âšâ¥
110if "!GSDLLANG!" == "ru" echo ¢­š¬ ­š¥, çâ® íâš ­ §­ ç¥­šï ¡ã€ãâ ⮫쪮 š¬¥âì íä䥪⠢ ¯à¥€¥« å í⮣® MS DOS
111if "!GSDLLANG!" == "ru" echo á¥áášï. ‚ë ¡ã€¥â¥ ¯®í⮬㠀®«Š­ë ¯®¢â®à­® ã¯à ¢«ïâì setup.bat, ¥á«š ‚ë å®âšâ¥
112if "!GSDLLANG!" == "ru" echo ã¯à ¢«ïâì ¯à®£à ¬¬ ¬š ‡¥«ñ­ëå š§¢¥àŠ¥­­ëå ¯®à®€ ®â à §«šç­®© á¥áášš MS DOS.
113if "!GSDLLANG!" == "ru" echo.
114
115:End
116endlocal & set PATH=%PATH%& set GSDLHOME=%GSDLHOME%& set GSDLOS=%GSDLOS%
117
118set savedir=%CD%
119cd "%GSDLHOME%"
120if exist ext (
121 for /D %%e IN ("ext/*") do call :addexts %%e
122)
123cd "%savedir%"
124set savedir=
125goto :doneexts
126
127:addexts
128set folder=%1
129cd "ext\%folder%"
130if EXIST setup.bat call setup.bat
131cd ..\..
132goto :eof
133
134:doneexts
135
136
137if exist "%GSDLHOME%\local\setup.bat" (
138 echo.
139 echo Running %GSDLHOME%\local\setup.bat
140 cd "%GSDLHOME%\local"
141 call setup.bat
142 cd "%GSDLHOME%"
143)
144
145setlocal enabledelayedexpansion
146
147if exist "%GSDLHOME%\local" (
148 set PATH=!GSDLHOME!\local\bin;!PATH!
149)
150
151if exist "%GSDLHOME%\apache-httpd" (
152 echo +Adding in executable path for apache-httpd
153 set PATH=!GSDLHOME!\apache-httpd\!GSDLOS!\bin;!PATH!
154 set PATH=!GSDLHOME!\apache-httpd\!GSDLOS!\lib;!PATH!
155)
156
157:: test writability of GSDLHOME
158@call "!GSDLHOME!\bin\script\checkwritability.bat"
159
160::::::::::::::::::::::::::::::
161if "!GSDL3SRCHOME!" == "" (goto javacheck) else (goto done)
162
163:javacheck
164:: Only for GS2: work out java, and if the bundled jre is found, then set Java env vars with it
165:: Then the same java will be consistently available for all aspects of GS2 (server or GLI, and any subshells these launch)
166echo.
167set MINIMUM_JAVA_VERSION=1.5.0_00
168echo GS2 installation: Checking for Java of version !MINIMUM_JAVA_VERSION! or above
169
170set BUNDLED_JRE=!GSDLHOME!\packages\jre
171if exist "!BUNDLED_JRE!" (
172 set HINT=!BUNDLED_JRE!
173) else (
174 echo No bundled JRE
175 set HINT=
176)
177
178set SEARCH4J_EXECUTABLE=!GSDLHOME!\bin\!GSDLOS!\search4j.exe
179if not exist "!SEARCH4J_EXECUTABLE!" (
180 echo Can't check for java, no Search4j
181 if not exist "!BUNDLED_JRE!" echo Ensure Java environment variables are set ^(either JAVA_HOME or JRE_HOME and on PATH^) & goto done
182 :: else use Bundled JRE
183 echo Will use the bundled JRE and unset any JAVA_HOME to prevent conflicts
184 set JAVA_HOME=
185 set JRE_HOME=!BUNDLED_JRE!
186 set PATH=!BUNDLED_JRE!\bin;!PATH!
187 goto done
188)
189
190:: Need the call stmt, the usebackq with backticks around the full command, AND the double quotes around filepaths to properly handle spaces in the filepaths
191for /f "usebackq tokens=*" %%r in (`call "!GSDLHOME!\bin\!GSDLOS!\search4j.exe" -p "!HINT!" -m !MINIMUM_JAVA_VERSION!`) do set GS_JAVA_HOME=%%r
192
193
194if "!GS_JAVA_HOME!" == "" (
195 if not exist "!BUNDLED_JRE!" echo There's no bundled JRE.
196 echo setup.bat: Could not find Java in the environment or installation.
197 echo Set JAVA_HOME or JRE_HOME, and put it on the PATH, if working with Java tools like Lucene.
198 goto done
199)
200
201:: found java, now GS_JAVA_HOME env vars set, set JAVA_HOME else JRE_HOME
202
203if "!GS_JAVA_HOME!" == "!BUNDLED_JRE!" (
204 :: since our bundled JRE was selected by search4j and we'll be using that, clearing any existing JAVA_HOME to prevent version conflicts
205 echo Found a bundled JRE. Setting up GS2's Java environment to use this ^(and unsetting any JAVA_HOME to prevent version conflicts^)
206 set JAVA_HOME=
207 set JRE_HOME=!BUNDLED_JRE!
208 set PATH=!BUNDLED_JRE!\bin;!PATH!
209 goto done
210)
211
212:: Otherwise, the java that search4j found is not the bundled jre. In that case
213:: if JAVA_HOME or JRE_HOME is already set to the Java found, then PATH presumably would already be set too.
214if "!JAVA_HOME!" == "!GS_JAVA_HOME!" (
215 echo Looks like the Java environment is already set up with a JAVA_HOME
216 ::echo Looks like the Java environment is already set up with a JAVA_HOME, unsetting any JRE_HOME
217 goto done
218)
219if "!JRE_HOME!" == "!GS_JAVA_HOME!" (
220 echo Looks like the Java environment is already set up with a JRE_HOME, unsetting any JAVA_HOME to prevent java version conflicts
221 set JAVA_HOME=
222 goto done
223)
224
225:: if Java env vars not already set, then set them to the GS_JAVA_HOME found
226echo Found a Java on the system. Setting up GS2's Java environment to use this
227::echo Found a Java on the system. Setting up GS2's Java environment to use this: !GS_JAVA_HOME!
228set PATH=!GS_JAVA_HOME!\bin;!PATH!
229:: extract the last 4 chars from folder name. Could be \jre or jre\ or otherwise
230set javafoldername=!GS_JAVA_HOME:~-4!
231:: now can test if the foldername contains jre or otherwise, and based on that set either JAVA_HOME or JRE_HOME
232:: https://stackoverflow.com/questions/7005951/batch-file-find-if-substring-is-in-string-not-in-a-file
233:: https://ss64.com/nt/syntax-substring.html
234if /i "x!javafoldername:jre=!" == "x!javafoldername!" (
235 echo Setting JAVA_HOME, and unsetting any JRE_HOME to prevent version conflicts
236 set JAVA_HOME=!GS_JAVA_HOME!
237 set JRE_HOME=
238) else (
239 echo Setting JRE_HOME, and unsetting any JAVA_HOME to prevent version conflicts
240 set JRE_HOME=!GS_JAVA_HOME!
241 set JAVA_HOME=
242)
243
244::::::::::::::::::::::::::::::
245
246:done
247popd
248endlocal & set PATH=%PATH%& set GSDLHOME=%GSDLHOME%& set GSDLOS=%GSDLOS%& set JRE_HOME=%JRE_HOME%& set JAVA_HOME=%JAVA_HOME%
249
250if not "%JAVA_HOME%" == "" echo JAVA_HOME: %JAVA_HOME%
251if not "%JRE_HOME%" == "" echo JRE_HOME: %JRE_HOME%
252if "%JAVA_HOME%" == "" if "%JRE_HOME%" == "" echo Warning: Neither JAVA_HOME nor JRE_HOME set. Ensure one is set and on PATH.
253
254:: Perl >= v5.18.* randomises map iteration order within a process
255set PERL_PERTURB_KEYS=0
256
257:: The user can customise wget flags like number of retries and setting timeouts in the Wgetrc file.
258:: The WGETRC environment variable is used by wget to find a user wgetrc file overriding any system level one
259:: https://www.gnu.org/software/wget/manual/html_node/Wgetrc-Location.html
260set WGETRC=%GSDLHOME%/bin/%GSDLOS%/wgetrc
Note: See TracBrowser for help on using the repository browser.