FYI: Скрипт не поддерживает UNC пути
+ Структура каталогов с которыми работает скрипт deploy.cmd |
\"fbsql_deploy" // может называться как угодно и располагаться где угодно, кроме UNC
|
+-"deploy.cmd" // сам скрипт
|
+-+"x86"
| |
| +-"fbsvr" // каталог с содержимым Firebird-2.5.###_Win32.zip
| |
| +-"vcredist.exe" // x86 v6.00.2900.2180 (v8.0.50727.6195)
|
+-"x86_64"
|
+-"fbsvr" // каталог с содержимым Firebird-2.5.###_x64.zip
|
+-"vcredist.exe" // x64 v6.00.2900.2180 (v8.0.50727.6195)
|
+ Скрипт deploy.cmd |
@echo off
setlocal
echo Deploying FirebirdSQL SuperServer components...
if "%PROCESSOR_ARCHITECTURE%"=="x86" (
set cpuarch=x86
set fbdir=%ProgramFiles%\Firebird\Firebird_2_5
goto :cpuarch_done
) else if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
set cpuarch=x86_64
set fbdir=%ProgramFiles%\Firebird\Firebird_2_5
goto :cpuarch_done
)
echo !ERROR! Unknown processor architecture.
goto :error
:cpuarch_done
if exist "%fbdir%" (
echo !ERROR! FirebirdSQL directory installation already exist.
goto :error
)
sc query "FirebirdServerDefaultInstance" >nul
if not errorlevel 1 (
echo !ERROR! Default instance of FirebirdSQL service already registered.
goto :error
)
sc query "FirebirdGuardianDefaultInstance" >nul
if not errorlevel 1 (
echo !ERROR! Default instance of FirebirdSQL Guardian service already registered.
goto :error
)
md "%fbdir%"
if errorlevel 1 goto :bad_privileges
set deploy_dir=%~dp0
set srcdir=%deploy_dir%%cpuarch%
xcopy "%srcdir%\fbsvr\*.*" "%fbdir%\" /e /q >nul
if errorlevel 1 (
echo !ERROR! Error while deploying.
goto :error
)
echo !SUCCESS!
echo.
echo "Path" System environment variable content checking...
set pathkey=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
for /f "tokens=1,2,*" %%i in ('reg query "%pathkey%" /v "path"') do (
if /i "path"=="%%i" (
echo %%k | findstr /i /l /c:"%fbdir%\bin" >nul
if errorlevel 1 (
reg add "%pathkey%" /v "%%i" /t "%%j" /d "%%k;%fbdir%\bin" /f >nul
) else echo !INFO! "%fbdir%" already in system environment variable "Path".
echo !SUCCESS!
)
)
echo.
echo FirebirdSQL client libraries deploying...
"%srcdir%\vcredist.exe" /q
xcopy "%srcdir%\fbsvr\firebird.msg" "%SystemRoot%\" /q /y >nul
xcopy "%srcdir%\fbsvr\bin\fbclient.dll" "%SystemRoot%\System32\" /q /y >nul
xcopy "%srcdir%\fbsvr\bin\fbembed.dll" "%SystemRoot%\System32\" /q /y >nul
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
set srcdir=%deploy_dir%x86
"%srcdir%\vcredist.exe" /q
xcopy "%srcdir%\fbsvr\bin\fbclient.dll" "%SystemRoot%\SysWOW64\" /q /y >nul
xcopy "%srcdir%\fbsvr\bin\fbembed.dll" "%SystemRoot%\SysWOW64\" /q /y >nul
)
echo !SUCCESS!
echo.
echo FirebirdSQL services registration...
rem --= FirebirdServerDefaultInstance =--
sc create "FirebirdServerDefaultInstance" type= "own" start= "demand" ^
error= "normal" binpath= "\"%fbdir%\bin\fbserver.exe\" -s DefaultInstance" ^
tag= "no" displayname= "Firebird Server - DefaultInstance" obj= "LocalSystem"
if errorlevel 1 (
echo !ERROR! "FirebirdServerDefaultInstance" service registration error.
goto :bad_privileges
)
sc description "FirebirdServerDefaultInstance" ^
"Firebird Database Server - www.firebirdsql.org" >nul
rem --= FirebirdGuardianDefaultInstance =--
sc create "FirebirdGuardianDefaultInstance" type= "own" start= "auto" ^
error= "normal" binpath= "\"%fbdir%\bin\fbguard.exe\" -s DefaultInstance" ^
tag= "no" displayname= "Firebird Guardian - DefaultInstance" obj= "LocalSystem"
if errorlevel 1 (
echo !ERROR! "FirebirdGuardianDefaultInstance" service registration error.
goto :bad_privileges
)
sc failure "FirebirdGuardianDefaultInstance" reset= "0" actions= "restart/0" >nul
sc description "FirebirdGuardianDefaultInstance" ^
"Firebird Server Guardian - www.firebirdsql.org" >nul
echo !SUCCESS!
echo.
net start "FirebirdGuardianDefaultInstance"
endlocal
goto :eof
:bad_privileges
echo !ERROR! You havn't privileges.
:error
echo Press any key to continue...
endlocal
pause >nul
goto :eof
|