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

Last change on this file since 20915 was 20915, checked in by ak19, 14 years ago

Minor change: removed display of an unwanted echo stmt

File size: 5.8 KB
RevLine 
[20391]1@echo off
2SETLOCAL
3
[20896]4if "%serverlang%" == "" set serverlang=en
[20635]5set java_min_version=1.5.0_00
[20896]6set PROGNAME=gs2-server
7if "%PROGABBR%" == "" set PROGABBR=GSI
[20391]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
[20436]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%"
[20391]34 call setup.bat
[20655]35rem echo **** GSDLOS: %GSDLOS% and GSDLHOME: %GSDLHOME%
[20391]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."
[20915]48rem echo "%GSDLHOME%\apache-httpd\nul"
[20905]49if not exist "%GSDLHOME%\apache-httpd\*" (
[20391]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)
[20905]78call :isinpath "%GSDLHOME%\lib\java"
[20391]79
80:: After the call, we come back here
81goto chkjava
82
83:isinpath
[20392]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")
[20391]86:: Instead, we expand the filepath of parameter 1 to its full path and
87:: try to subtract it from the classpath.
[20392]88::call set test_cpath=%%CLASSPATH:%~f1=%%
89call set test_cpath=%%CLASSPATH:%1=%%
[20391]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
[20392]103:: http://ss64.com/nt/for_r.html and (for call) http://ss64.com/nt/for.html
[20391]104:: http://ss64.com/nt/syntax-args.html
[20905]105FOR /R "%GSDLHOME%\lib\java" %%G IN (*.jar) DO call :putinpath "%%G"
[20391]106echo - Adjusted CLASSPATH
107echo.
108::echo CLASSPATH:& echo %CLASSPATH%
109goto :eof
110
111
112:putinpath
[20905]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%
[20391]118goto :eof
119
120:: ---- Check Java ----
121:chkjava
[20655]122:: call the script with source, so that we have the variables JAVA_EXECUTABLE and GS_JAVA_HOME it sets
[20391]123set exit_status=0
124:: Need to find Java. If found, JAVA_EXECUTABLE will be set
125:: call findjava.bat %serverlang% %PROGNAME%
[20478]126call "%GSDLHOME%\findjava.bat"
[20391]127if "%JAVA_EXECUTABLE%" == "" echo **** No Java executable found& goto exit
[20655]128set PATH=%GS_JAVA_HOME%\bin;%PATH%
[20391]129
130
131:: ---- Run the Greenstone Server Interface ----
[20896]132:: Some informative messages to direct the users to the logs
133if "%serverlang%" == "en" (
134 echo ***************************************************************
[20905]135 echo Starting the Greenstone Server Interface ^(GSI^)...
[20896]136 echo.
137 echo Server log messages go to:
[20905]138 echo "%GSDLHOME%\etc\logs-gsi\server.log"
[20896]139 echo.
140 echo Using Apache web server located at:
[20905]141 echo "%GSDLHOME%\apache-httpd\%GSDLOS%\bin\httpd"
[20896]142 echo The Apache error log is at:
[20905]143 echo "%GSDLHOME%\apache-httpd\%GSDLOS%\logs\error_log"
[20896]144 echo The Apache configuration file template is at:
[20905]145 echo "%GSDLHOME%\apache-httpd\%GSDLOS%\conf\httpd.conf.in"
[20896]146 echo This is used to generate:
[20905]147 echo "%GSDLHOME%\apache-httpd\%GSDLOS%\conf\httpd.conf"
[20896]148 echo each time Enter Library is pressed or otherwise activated.
149 echo ***************************************************************
150 echo.
151)
[20391]152echo.
153"%JAVA_EXECUTABLE%" org.greenstone.server.Server2 "%GSDLHOME%" "%serverlang%" %*
[20478]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
[20391]159goto exit
160
[20478]161:: Exit the batch script (close the console)
162:quitcmd
163popd
164ENDLOCAL
165exit 0
166
167:: Just end the script without closing the console
[20391]168:exit
169popd
170ENDLOCAL
Note: See TracBrowser for help on using the repository browser.