root/main/trunk/greenstone2/gs2-server.bat @ 21377

Revision 20934, 5.9 KB (checked in by ak19, 10 years ago)

Minor correction to make it use search4j to find java.

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."
48rem echo "%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%
126if "%GSDL3SRCHOME%" == "" (set _VERSION=2) else (set _VERSION=3)
127call "%GSDLHOME%\findjava.bat"
128if "%JAVA_EXECUTABLE%" == "" echo **** No Java executable found& goto exit
129set PATH=%GS_JAVA_HOME%\bin;%PATH%
130
131
132:: ---- Run the Greenstone Server Interface ----
133:: Some informative messages to direct the users to the logs
134if "%serverlang%" == "en" (
135   echo ***************************************************************
136   echo Starting the Greenstone Server Interface ^(GSI^)...
137   echo.
138   echo Server log messages go to:
139   echo    "%GSDLHOME%\etc\logs-gsi\server.log"
140   echo.
141   echo Using Apache web server located at:
142   echo    "%GSDLHOME%\apache-httpd\%GSDLOS%\bin\httpd"
143   echo The Apache error log is at:
144   echo    "%GSDLHOME%\apache-httpd\%GSDLOS%\logs\error_log"
145   echo The Apache configuration file template is at:
146   echo    "%GSDLHOME%\apache-httpd\%GSDLOS%\conf\httpd.conf.in"
147   echo This is used to generate:
148   echo    "%GSDLHOME%\apache-httpd\%GSDLOS%\conf\httpd.conf"
149   echo    each time Enter Library is pressed or otherwise activated.
150   echo ***************************************************************
151   echo.
152)
153echo.
154"%JAVA_EXECUTABLE%" org.greenstone.server.Server2 "%GSDLHOME%" "%serverlang%" %*
155::echo ******* Second argument to gs2-server.bat is: %2
156:: The 1st argument to gs2-server.bat (if any) would be --config, the 2nd is the config
157:: filename if it is glisite.cfg, then this script was launched through GLI and would
158:: have opened a DOS console. Need to exit from this script then to close the console.
159if "%2" == "%GSDLHOME%\glisite.cfg" goto quitcmd
160goto exit
161
162:: Exit the batch script (close the console)
163:quitcmd
164popd
165ENDLOCAL
166exit 0
167
168:: Just end the script without closing the console
169:exit
170popd
171ENDLOCAL
Note: See TracBrowser for help on using the browser.