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

Last change on this file since 20905 was 20905, checked in by kjdon, 12 years ago

Updated the file to deal with spaces in filepath, and with some corrections to bugs introduced on recent commit.

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