From d084d18cfa2af2d294185a108b9747c298d42cf1 Mon Sep 17 00:00:00 2001 From: kytv Date: Sat, 10 Sep 2011 15:54:30 +0000 Subject: [PATCH] Update of Windows service installation/removal scripts These scripts are based on InstallApp-NT.bat.in and UninstallApp-NT.bat.in from WRAPPERSRC/src/bin of version 3.5.9 of the wrapper. Tested in XP and Win7. --- .../resources/install_i2p_service_winnt.bat | 83 +++++++++++++++++-- .../resources/uninstall_i2p_service_winnt.bat | 65 ++++++++++++++- 2 files changed, 138 insertions(+), 10 deletions(-) diff --git a/installer/resources/install_i2p_service_winnt.bat b/installer/resources/install_i2p_service_winnt.bat index 46804a55f..04d7c16ce 100644 --- a/installer/resources/install_i2p_service_winnt.bat +++ b/installer/resources/install_i2p_service_winnt.bat @@ -1,10 +1,42 @@ @echo off setlocal +rem Copyright (c) 1999, 2011 Tanuki Software, Ltd. +rem http://www.tanukisoftware.com +rem All rights reserved. +rem +rem This software is the proprietary information of Tanuki Software. +rem You shall use it only in accordance with the terms of the +rem license agreement you entered into with Tanuki Software. +rem http://wrapper.tanukisoftware.com/doc/english/licenseOverview.html rem rem Java Service Wrapper general NT service install script rem +rem ----------------------------------------------------------------------------- +rem These settings can be modified to fit the needs of your application +rem Optimized for use with version 3.5.9 of the Wrapper. + +rem The base name for the Wrapper binary. +set _WRAPPER_BASE=i2psvc + +rem The name and location of the Wrapper configuration file. This will be used +rem if the user does not specify a configuration file as the first argument to +rem this script. +set _WRAPPER_CONF_DEFAULT=.\wrapper.config + +rem _PASS_THROUGH tells the script to pass all arguments through to the JVM +rem as is. +rem set _PASS_THROUGH=true + +rem Do not modify anything beyond this point +rem ----------------------------------------------------------------------------- + +rem +rem Resolve the real path of the wrapper.exe +rem For non NT systems, the _REALPATH and _WRAPPER_CONF values +rem can be hard-coded below and the following test removed. +rem if "%OS%"=="Windows_NT" goto nt echo This script only works with NT-based versions of Windows. goto :eof @@ -15,31 +47,70 @@ rem Find the application home. rem rem %~dp0 is location of current script under NT set _REALPATH=%~dp0 -set _WRAPPER_EXE=%_REALPATH%I2Psvc.exe + +rem +rem Decide on the specific Wrapper binary to use (See delta-pack) +rem +if "%PROCESSOR_ARCHITECTURE%"=="AMD64" goto amd64 +if "%PROCESSOR_ARCHITECTURE%"=="IA64" goto ia64 +set _WRAPPER_L_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe +goto search +:amd64 +set _WRAPPER_L_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe +goto search +:ia64 +set _WRAPPER_L_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-ia-64.exe +goto search +:search +set _WRAPPER_EXE=%_WRAPPER_L_EXE% +if exist "%_WRAPPER_EXE%" goto conf +set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%.exe +if exist "%_WRAPPER_EXE%" goto conf +echo Unable to locate a Wrapper executable using any of the following names: +echo %_WRAPPER_L_EXE% +echo %_WRAPPER_EXE% +pause +goto :eof rem rem Find the wrapper.conf rem :conf set _WRAPPER_CONF="%~f1" -if not %_WRAPPER_CONF%=="" goto startup -set _WRAPPER_CONF="%_REALPATH%wrapper.config" +if not [%_WRAPPER_CONF%]==[""] ( + shift + goto :startup +) +set _WRAPPER_CONF="%_WRAPPER_CONF_DEFAULT%" +:: Add service path to wrapper.config call "%_REALPATH%"\set_config_dir_for_nt_service.bat install rem rem Install the Wrapper as an NT service. rem :startup + +rem Collect an parameters +:parameters +set _PARAMETERS=%_PARAMETERS% %1 +shift +if not [%1]==[] goto :parameters + :: We remove the existing service to :: 1) force the service to stop :: 2) update service configuration in case wrapper.config was edited :: 3) prevent hanging the installer if 'install as service' is selected :: and it's already enabled as a service. -"%_WRAPPER_EXE%" -r %_WRAPPER_CONF% -"%_WRAPPER_EXE%" -i %_WRAPPER_CONF% +if [%_PASS_THROUGH%]==[] ( + "%_WRAPPER_EXE%" -r %_WRAPPER_CONF% + "%_WRAPPER_EXE%" -i %_WRAPPER_CONF% +) else ( + "%_WRAPPER_EXE%" -r %_WRAPPER_CONF% -- %_PARAMETERS% + "%_WRAPPER_EXE%" -i %_WRAPPER_CONF% -- %_PARAMETERS% +) if not errorlevel 1 goto :eof -if %2=="--nopause" goto :eof +if "%2"=="--nopause" goto :eof pause :eof diff --git a/installer/resources/uninstall_i2p_service_winnt.bat b/installer/resources/uninstall_i2p_service_winnt.bat index 36f4b09a7..63277d495 100644 --- a/installer/resources/uninstall_i2p_service_winnt.bat +++ b/installer/resources/uninstall_i2p_service_winnt.bat @@ -1,10 +1,41 @@ @echo off setlocal +rem Copyright (c) 1999, 2011 Tanuki Software, Ltd. +rem http://www.tanukisoftware.com +rem All rights reserved. +rem +rem This software is the proprietary information of Tanuki Software. +rem You shall use it only in accordance with the terms of the +rem license agreement you entered into with Tanuki Software. +rem http://wrapper.tanukisoftware.com/doc/english/licenseOverview.html rem rem Java Service Wrapper general NT service uninstall script rem +rem ----------------------------------------------------------------------------- +rem These settings can be modified to fit the needs of your application +rem Optimized for use with version 3.5.9 of the Wrapper. + +rem The base name for the Wrapper binary. +set _WRAPPER_BASE=i2psvc + +rem The name and location of the Wrapper configuration file. This will be used +rem if the user does not specify a configuration file as the first argument to +rem this script. +set _WRAPPER_CONF_DEFAULT=.\wrapper.config + +rem Note that it is only possible to pass parameters through to the JVM when +rem installing the service, or when running in a console. + +rem Do not modify anything beyond this point +rem ----------------------------------------------------------------------------- + +rem +rem Resolve the real path of the wrapper.exe +rem For non NT systems, the _REALPATH and _WRAPPER_CONF values +rem can be hard-coded below and the following test removed. +rem if "%OS%"=="Windows_NT" goto nt echo This script only works with NT-based versions of Windows. goto :eof @@ -15,17 +46,43 @@ rem Find the application home. rem rem %~dp0 is location of current script under NT set _REALPATH=%~dp0 -set _WRAPPER_EXE=%_REALPATH%I2Psvc.exe -call "%_REALPATH%"\set_config_dir_for_nt_service.bat uninstall + +rem +rem Decide on the specific Wrapper binary to use (See delta-pack) +rem +if "%PROCESSOR_ARCHITECTURE%"=="AMD64" goto amd64 +if "%PROCESSOR_ARCHITECTURE%"=="IA64" goto ia64 +set _WRAPPER_L_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe +goto search +:amd64 +set _WRAPPER_L_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe +goto search +:ia64 +set _WRAPPER_L_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-ia-64.exe +goto search +:search +set _WRAPPER_EXE=%_WRAPPER_L_EXE% +if exist "%_WRAPPER_EXE%" goto conf +set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%.exe +if exist "%_WRAPPER_EXE%" goto conf +echo Unable to locate a Wrapper executable using any of the following names: +echo %_WRAPPER_L_EXE% +echo %_WRAPPER_EXE% +pause +goto :eof rem rem Find the wrapper.conf rem :conf set _WRAPPER_CONF="%~f1" -if not %_WRAPPER_CONF%=="" goto startup -set _WRAPPER_CONF="%_REALPATH%wrapper.config" +if not [%_WRAPPER_CONF%]==[""] ( + shift + goto :startup +) +set _WRAPPER_CONF="%_WRAPPER_CONF_DEFAULT%" +call "%_REALPATH%"\set_config_dir_for_nt_service.bat uninstall rem rem Uninstall the Wrapper as an NT service. rem