|
|
@@ -1,92 +1,11 @@
|
|
|
-:: The batch file for emqx_ctl command
|
|
|
+:: The batch file for 'emqx ctl' command
|
|
|
|
|
|
@set args=%*
|
|
|
|
|
|
-:: Set variables that describe the release
|
|
|
-@set rel_name=emqx
|
|
|
-@set rel_vsn={{ release_version }}
|
|
|
-@set erts_vsn={{ erts_vsn }}
|
|
|
-@set erl_opts={{ erl_opts }}
|
|
|
-
|
|
|
:: Discover the release root directory from the directory
|
|
|
:: of this script
|
|
|
@set script_dir=%~dp0
|
|
|
@for %%A in ("%script_dir%\..") do @(
|
|
|
set rel_root_dir=%%~fA
|
|
|
)
|
|
|
-@set rel_dir=%rel_root_dir%\releases\%rel_vsn%
|
|
|
-@set emqx_conf=%rel_root_dir%\etc\emqx.conf
|
|
|
-
|
|
|
-@call :find_erts_dir
|
|
|
-
|
|
|
-@set bindir=%erts_dir%\bin
|
|
|
-@set progname=erl.exe
|
|
|
-@set escript="%bindir%\escript.exe"
|
|
|
-@set nodetool="%rel_root_dir%\bin\nodetool"
|
|
|
-@set node_type="-name"
|
|
|
-
|
|
|
-:: Extract node name from emqx.conf
|
|
|
-@for /f "usebackq delims=\= tokens=2" %%I in (`findstr /b node\.name "%emqx_conf%"`) do @(
|
|
|
- @call :set_trim node_name %%I
|
|
|
-)
|
|
|
-
|
|
|
-:: Extract node cookie from emqx.conf
|
|
|
-@for /f "usebackq delims=\= tokens=2" %%I in (`findstr /b node\.cookie "%emqx_conf%"`) do @(
|
|
|
- @call :set_trim node_cookie= %%I
|
|
|
-)
|
|
|
-
|
|
|
-:: Write the erl.ini file to set up paths relative to this script
|
|
|
-@call :write_ini
|
|
|
-
|
|
|
-:: If a start.boot file is not present, copy one from the named .boot file
|
|
|
-@if not exist "%rel_dir%\start.boot" (
|
|
|
- copy "%rel_dir%\%rel_name%.boot" "%rel_dir%\start.boot" >nul
|
|
|
-)
|
|
|
-
|
|
|
-@%escript% %nodetool% %node_type% "%node_name%" -setcookie "%node_cookie%" rpc emqx_ctl run_command %args%
|
|
|
-
|
|
|
-:: Find the ERTS dir
|
|
|
-:find_erts_dir
|
|
|
-@set possible_erts_dir=%rel_root_dir%\erts-%erts_vsn%
|
|
|
-@if exist "%possible_erts_dir%" (
|
|
|
- call :set_erts_dir_from_default
|
|
|
-) else (
|
|
|
- call :set_erts_dir_from_erl
|
|
|
-)
|
|
|
-@goto :eof
|
|
|
-
|
|
|
-:: Set the ERTS dir from the passed in erts_vsn
|
|
|
-:set_erts_dir_from_default
|
|
|
-@set erts_dir=%possible_erts_dir%
|
|
|
-@set rootdir=%rel_root_dir%
|
|
|
-@goto :eof
|
|
|
-
|
|
|
-:: Set the ERTS dir from erl
|
|
|
-:set_erts_dir_from_erl
|
|
|
-@for /f "delims=" %%i in ('where erl') do @(
|
|
|
- set erl=%%i
|
|
|
-)
|
|
|
-@set dir_cmd="%erl%" -noshell -eval "io:format(\"~s\", [filename:nativename(code:root_dir())])." -s init stop
|
|
|
-@for /f %%i in ('%%dir_cmd%%') do @(
|
|
|
- set erl_root=%%i
|
|
|
-)
|
|
|
-@set erts_dir=%erl_root%\erts-%erts_vsn%
|
|
|
-@set rootdir=%erl_root%
|
|
|
-@goto :eof
|
|
|
-
|
|
|
-:: Write the erl.ini file
|
|
|
-:write_ini
|
|
|
-@set erl_ini=%erts_dir%\bin\erl.ini
|
|
|
-@set converted_bindir=%bindir:\=\\%
|
|
|
-@set converted_rootdir=%rootdir:\=\\%
|
|
|
-@echo [erlang] > "%erl_ini%"
|
|
|
-@echo Bindir=%converted_bindir% >> "%erl_ini%"
|
|
|
-@echo Progname=%progname% >> "%erl_ini%"
|
|
|
-@echo Rootdir=%converted_rootdir% >> "%erl_ini%"
|
|
|
-@goto :eof
|
|
|
-
|
|
|
-:: Trim variable
|
|
|
-:set_trim
|
|
|
-@set %1=%2
|
|
|
-@goto :eof
|
|
|
-
|
|
|
+@%rel_root_dir%\bin\emqx.cmd ctl %args%
|