source: gsdl/trunk/gs2-server.bat@ 20655

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

Updated in sync with the changes Katherine just made to gs2-server.sh and findjava.sh (JAVA_HOME\bin added to the PATH) before launching the webserver so that apache can pass it on to the lucene indexers.

File size: 4.8 KB
RevLine 
[20391]1@echo off
2SETLOCAL
3
4set serverlang=en
[20635]5set java_min_version=1.5.0_00
[20391]6set PROGNAME="gs2-server"
7pushd "%CD%"
8CD /D "%~dp0"
9
10echo Greenstone 2 Server
11echo Copyright (C) 2009, New Zealand Digital Library Project, University Of Waikato
12echo This software comes with ABSOLUTELY NO WARRANTY; for details see LICENSE.txt
13echo This is free software, and you are welcome to redistribute it
14
15:: -------- Run the Greenstone 2 Server --------
16
17:: ---- Determine GSDLHOME ----
18set gsdl2path=
19
20:: Some users may set the above line manually
21if "%gsdl2path%" == "" (
22 set GSDLHOME=%CD%
23 set gsdl2path=%CD%
24)
25echo GS2 Home: %GSDLHOME%
26
27:: Setup Greenstone2, unless it has already been done
[20436]28:: If either GSDLHOME or GSDLOS is not set, need to run setup.bat first
29:: OR operations in an IF stmt: http://fixunix.com/ms-dos/21057-how-implement-if-condition-batch-file.html
30for %%i in ("%GSDLOS%" "%GSDLHOME%") do if %%i == "" set OR=True
31if "%OR%" == "True" (
32 pushd "%gsdl2path%"
[20391]33 call setup.bat
[20655]34rem echo **** GSDLOS: %GSDLOS% and GSDLHOME: %GSDLHOME%
[20391]35 popd
36)
37
38
39:: First test that there is actually something that can be run...
40:: Exit if the apache-httpd folder doesn't exist for some reason
41:: (The errors reported when the apache webserver does not exist
42:: in the correct location are not at all helpful).
43
44:: "You cannot use the if command to test directly for a directory, but
45:: the null (NUL) device does exist in every directory. As a result, you
46:: can test for the null device to determine whether a directory exists."
47::echo %GSDLHOME%\apache-httpd\nul
48if not exist %GSDLHOME%\apache-httpd\nul (
49 echo.
50 echo UNABLE TO CONTINUE: There is no apache-httpd directory.
51 echo It does not look like the local apache webserver has been installed.
52 echo Exiting...
53 echo.
54 goto exit
55)
56:: exit 1
57
58
59:: If there's no llssite.cfg file, copy from the template
60if exist "%GSDLHOME%\llssite.cfg" goto cfgfile
61if exist "%GSDLHOME%\llssite.cfg.in" (
62 copy "%GSDLHOME%\llssite.cfg.in" "%GSDLHOME%\llssite.cfg"
63) else (
64 echo Warning: could not find llssite.cfg.in to create llssite.cfg from.
65)
66
67:cfgfile
68:: ---- Determine GSDLHOME ----
69:: JRE_HOME or JAVA_HOME must be set correctly to run this program
70bin\windows\search4j -m %java_min_version% > nul
71echo.
72:: In Java code, '...getResourceAsStream("build.properties")'
73:: needs up to be in the right directory when run
74if %ERRORLEVEL% equ 0 pushd %GSDL2PATH%
75
76:: http://ss64.com/nt/call.html (and leave in trailing slash)
77call :isinpath %GSDLHOME%\lib\java
78
79:: After the call, we come back here
80goto chkjava
81
82:isinpath
[20392]83:: http://ss64.com/nt/syntax-replace.html and http://ss64.com/nt/syntax-args.html
84:: (Does not work: section "Finding items within the PATH environment variable")
[20391]85:: Instead, we expand the filepath of parameter 1 to its full path and
86:: try to subtract it from the classpath.
[20392]87::call set test_cpath=%%CLASSPATH:%~f1=%%
88call set test_cpath=%%CLASSPATH:%1=%%
[20391]89
90:: If there IS a difference in the classpath before and after,
91:: then the filepath was already on the classpath
92if not "%CLASSPATH%" == "%test_cpath%" (
93 echo - CLASSPATH already correct
94 echo %CLASSPATH%
95 goto :eof
96)
97
98:: If there was NO difference in the classpath before and after,
99:: then the filepath needs to be added to the classpath
100set CLASSPATH=%GSDLHOME%\lib\java;%CLASSPATH%
101
[20392]102:: http://ss64.com/nt/for_r.html and (for call) http://ss64.com/nt/for.html
[20391]103:: http://ss64.com/nt/syntax-args.html
104FOR /R "%GSDLHOME%\lib\java" %%G IN (*.jar) DO call :putinpath %%G
105echo - Adjusted CLASSPATH
106echo.
107::echo CLASSPATH:& echo %CLASSPATH%
108goto :eof
109
110
111:putinpath
112echo jarfile: %1
113set CLASSPATH=%CLASSPATH%;%1
114goto :eof
115
116:: ---- Check Java ----
117:chkjava
[20655]118:: call the script with source, so that we have the variables JAVA_EXECUTABLE and GS_JAVA_HOME it sets
[20391]119set exit_status=0
120:: Need to find Java. If found, JAVA_EXECUTABLE will be set
121:: call findjava.bat %serverlang% %PROGNAME%
[20478]122call "%GSDLHOME%\findjava.bat"
[20391]123if "%JAVA_EXECUTABLE%" == "" echo **** No Java executable found& goto exit
[20655]124set PATH=%GS_JAVA_HOME%\bin;%PATH%
[20391]125
126
127:: ---- Run the Greenstone Server Interface ----
128echo.
129"%JAVA_EXECUTABLE%" org.greenstone.server.Server2 "%GSDLHOME%" "%serverlang%" %*
[20478]130::echo ******* Second argument to gs2-server.bat is: %2
131:: The 1st argument to gs2-server.bat (if any) would be --config, the 2nd is the config
132:: filename if it is glisite.cfg, then this script was launched through GLI and would
133:: have opened a DOS console. Need to exit from this script then to close the console.
134if "%2" == "%GSDLHOME%\glisite.cfg" goto quitcmd
[20391]135goto exit
136
[20478]137:: Exit the batch script (close the console)
138:quitcmd
139popd
140ENDLOCAL
141exit 0
142
143:: Just end the script without closing the console
[20391]144:exit
145popd
146ENDLOCAL
Note: See TracBrowser for help on using the repository browser.