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

Last change on this file since 32324 was 32209, checked in by ak19, 6 years ago

Commented out the BITNESS env var for Windows introduced in the previous commit and not using it in gsConvert.pl since Win can use XPdf's bin32 version of pdftohtml on 64 bit machines too. The lines determining and setting the BITNESS env var in gs2build\setup.bat are only commented out since setting BITNESS on Win may be useful in the future and we don't want to reinvent the wheel

File size: 11.7 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
247
248:: COMMENTING OUT THE 2 LINES DETERMINING AND SETTING THE BITNESS (32/64) ON WIN MACHINES
249:: AS IT MAY BE USEFUL IN FUTURE AND IT TOOK ME SOME TIME TO GET THESE LINES WORKING RIGHT
250:: To know bitness (32 vs 64) of a Windows machine, the cmd is "SET Processor"
251:: and look through the lines of output for the line PROCESSOR_ARCHITECTURE=x86
252:: or PROCESSOR_ARCHITECTURE=x64. See techgenix.com/aquicktiptocheckoperatingsystemarchitecture/
253:: The following runs the cmd "set Processor". Then, among the multiline output, it finds the line
254:: containing "PROCESSOR_ARCHITECTURE", splits this line on the delimiter "=" and stores the 2nd token in %%G
255:: Based on the example "_ping_cmd" at https://ss64.com/nt/for_cmd.html
256REM for /f "tokens=2 delims==" %%G in ('set Processor ^|find "PROCESSOR_ARCHITECTURE"') do set BITNESS=%%G
257:: BITNESS will now be "x86" for 32 bit or something like "amd64" or "x64" for 64 bit
258:: From https://ss64.com/nt/syntax-substring.html
259:: "To do a string comparison, remove the SearchString and compare the result with the original
260:: variable before removal. If both strings are the same, then SearchString was not found:"
261REM if /i "%BITNESS:64=%" == "%BITNESS%" (set BITNESS=32) else (set BITNESS=64)
262
263popd
264endlocal & set PATH=%PATH%& set GSDLHOME=%GSDLHOME%& set GSDLOS=%GSDLOS%& set JRE_HOME=%JRE_HOME%& set JAVA_HOME=%JAVA_HOME%
265REM & set BITNESS=%BITNESS%
266
267if not "%JAVA_HOME%" == "" echo JAVA_HOME: %JAVA_HOME%
268if not "%JRE_HOME%" == "" echo JRE_HOME: %JRE_HOME%
269if "%JAVA_HOME%" == "" if "%JRE_HOME%" == "" echo Warning: Neither JAVA_HOME nor JRE_HOME set. Ensure one is set and on PATH.
270
271:: Perl >= v5.18.* randomises map iteration order within a process
272set PERL_PERTURB_KEYS=0
273
274:: The user can customise wget flags like number of retries and setting timeouts in the Wgetrc file.
275:: The WGETRC environment variable is used by wget to find a user wgetrc file overriding any system level one
276:: https://www.gnu.org/software/wget/manual/html_node/Wgetrc-Location.html
277set WGETRC=%GSDLHOME%/bin/%GSDLOS%/wgetrc
Note: See TracBrowser for help on using the repository browser.