115 lines
3.5 KiB
Batchfile
115 lines
3.5 KiB
Batchfile
|
@echo off
|
||
|
rem Licensed to the Apache Software Foundation (ASF) under one or more
|
||
|
rem contributor license agreements. See the NOTICE file distributed with
|
||
|
rem this work for additional information regarding copyright ownership.
|
||
|
rem The ASF licenses this file to You under the Apache License, Version 2.0
|
||
|
rem (the "License"); you may not use this file except in compliance with
|
||
|
rem the License. You may obtain a copy of the License at
|
||
|
rem
|
||
|
rem http://www.apache.org/licenses/LICENSE-2.0
|
||
|
rem
|
||
|
rem Unless required by applicable law or agreed to in writing, software
|
||
|
rem distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
rem See the License for the specific language governing permissions and
|
||
|
rem limitations under the License.
|
||
|
|
||
|
rem This script creates the directory structure required for running Tomcat
|
||
|
rem in a separate directory by pointing %CATALINA_BASE% to it. It copies the
|
||
|
rem conf directory from %CATALINA_HOME%, and creates empty directories for
|
||
|
rem bin, lib, logs, temp, webapps, and work.
|
||
|
rem
|
||
|
rem If the file %CATALINA_HOME%/bin/setenv.sh exists then it is copied to
|
||
|
rem the target directory as well.
|
||
|
rem
|
||
|
rem Usage: makebase <path-to-target-directory> [-w | --webapps]
|
||
|
|
||
|
setlocal
|
||
|
|
||
|
rem Guess CATALINA_HOME if not defined
|
||
|
set "CURRENT_DIR=%cd%"
|
||
|
if not "%CATALINA_HOME%" == "" goto gotHome
|
||
|
set "CATALINA_HOME=%CURRENT_DIR%"
|
||
|
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
|
||
|
cd ..
|
||
|
set "CATALINA_HOME=%cd%"
|
||
|
cd "%CURRENT_DIR%"
|
||
|
:gotHome
|
||
|
|
||
|
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
|
||
|
echo The CATALINA_HOME environment variable is not defined correctly
|
||
|
echo This environment variable is needed to run this program
|
||
|
goto EOF
|
||
|
:okHome
|
||
|
|
||
|
rem first arg is the target directory
|
||
|
set BASE_TGT=%1
|
||
|
|
||
|
if %BASE_TGT%.==. (
|
||
|
rem target directory not provided; exit
|
||
|
echo Usage: makebase ^<path-to-target-directory^>
|
||
|
goto :EOF
|
||
|
)
|
||
|
|
||
|
set COPY_WEBAPPS=false
|
||
|
|
||
|
rem parse args
|
||
|
for %%a in (%*) do (
|
||
|
if "%%~a"=="--webapps" (
|
||
|
set COPY_WEBAPPS=true
|
||
|
)
|
||
|
if "%%~a"=="-w" (
|
||
|
set COPY_WEBAPPS=true
|
||
|
)
|
||
|
)
|
||
|
|
||
|
if exist %BASE_TGT% (
|
||
|
rem target directory exists
|
||
|
echo Target directory exists
|
||
|
|
||
|
rem exit if target directory is not empty
|
||
|
for /F %%i in ('dir /b %BASE_TGT%\*.*') do (
|
||
|
echo Target directory is not empty
|
||
|
goto :EOF
|
||
|
)
|
||
|
) else (
|
||
|
rem create the target directory
|
||
|
mkdir %BASE_TGT%
|
||
|
)
|
||
|
|
||
|
rem create empty directories
|
||
|
for %%d in (bin, conf, lib, logs, temp, webapps, work) do (
|
||
|
mkdir %BASE_TGT%\%%d
|
||
|
)
|
||
|
|
||
|
if "%COPY_WEBAPPS%" == "true" (
|
||
|
echo Copying webapps
|
||
|
robocopy %CATALINA_HOME%\webapps %BASE_TGT%\webapps /E > nul
|
||
|
rem copy conf directory recursively
|
||
|
robocopy %CATALINA_HOME%\conf %BASE_TGT%\conf /E > nul
|
||
|
) else (
|
||
|
rem copy conf directory without subdirectories and suppress warning
|
||
|
robocopy %CATALINA_HOME%\conf %BASE_TGT%\conf > nul
|
||
|
rem create empty ROOT directory
|
||
|
mkdir %BASE_TGT%\webapps\ROOT
|
||
|
)
|
||
|
|
||
|
rem copy setenv.bat if exists
|
||
|
robocopy %CATALINA_HOME%\bin %BASE_TGT%\bin setenv.bat > nul
|
||
|
|
||
|
echo Created CATALINA_BASE directory at %BASE_TGT%
|
||
|
|
||
|
echo.
|
||
|
echo You can launch the new instance by running:
|
||
|
echo set CATALINA_HOME=%CATALINA_HOME%
|
||
|
echo set CATALINA_BASE=%BASE_TGT%
|
||
|
echo %%CATALINA_HOME%%/bin/catalina.bat run
|
||
|
|
||
|
echo.
|
||
|
echo Attention: The ports in conf\server.xml might be bound by a
|
||
|
echo different instance. Please review your config files
|
||
|
echo and update them where necessary.
|
||
|
echo.
|
||
|
|
||
|
:EOF
|