Quantcast
Channel: SQL.ru: Firebird, InterBase
Viewing all articles
Browse latest Browse all 1677

Кому нужна автоматизация развертывания крайнего FB2.5 SuperServer из снапшота, забирайте.

$
0
0
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

Viewing all articles
Browse latest Browse all 1677

Trending Articles