From 307bce2e1da7f921cbf19af13e15051c07bb1bbc Mon Sep 17 00:00:00 2001 From: huangdan Date: Mon, 24 Aug 2015 11:33:16 +0800 Subject: [PATCH] plugins load for windows --- rel/files/emqttd.cmd | 13 +++++- rel/files/start_erl.cmd | 90 +++++++++++++++++++++++------------------ 2 files changed, 62 insertions(+), 41 deletions(-) diff --git a/rel/files/emqttd.cmd b/rel/files/emqttd.cmd index 6e58225dc..8a0d5eb73 100644 --- a/rel/files/emqttd.cmd +++ b/rel/files/emqttd.cmd @@ -1,4 +1,6 @@ +@echo off @setlocal +@setlocal enabledelayedexpansion @set node_name=emqttd @@ -69,7 +71,16 @@ @goto :EOF :console -@start "%node_name% console" %werl% -boot "%node_boot_script%" -config "%sys_config%" -args_file "%vm_args%" -sname %node_name% +set dest_path=%~dp0 +cd /d !dest_path!..\plugins +set current_path=%cd% +set plugins= +for /d %%P in (*) do ( +set "plugins=!plugins!!current_path!\%%P\ebin " +) +cd /d %node_root% + +@start "%node_name% console" %werl% -boot "%node_boot_script%" -config "%sys_config%" -args_file "%vm_args%" -sname %node_name% -pa %plugins% @goto :EOF :query diff --git a/rel/files/start_erl.cmd b/rel/files/start_erl.cmd index 86bbe5a9f..76d2bbc3d 100644 --- a/rel/files/start_erl.cmd +++ b/rel/files/start_erl.cmd @@ -1,40 +1,50 @@ -@setlocal - -@rem Parse arguments. erlsrv.exe prepends erl arguments prior to first ++. -@rem Other args are position dependent. -@set args="%*" -@for /F "delims=++ tokens=1,2,3" %%I in (%args%) do @( - @set erl_args=%%I - @call :set_trim node_name %%J - @rem Trim spaces from the left of %%K (node_root), which may have spaces inside - @for /f "tokens=* delims= " %%a in ("%%K") do @set node_root=%%a -) - -@set releases_dir=%node_root%\releases - -@rem parse ERTS version and release version from start_erl.dat -@for /F "usebackq tokens=1,2" %%I in ("%releases_dir%\start_erl.data") do @( - @call :set_trim erts_version %%I - @call :set_trim release_version %%J -) - -@set erl_exe="%node_root%\erts-%erts_version%\bin\erl.exe" -@set boot_file="%releases_dir%\%release_version%\%node_name%" - -@if exist "%releases_dir%\%release_version%\sys.config" ( - @set app_config="%releases_dir%\%release_version%\sys.config" -) else ( - @set app_config="%node_root%\etc\emqttd.config" -) - -@if exist "%releases_dir%\%release_version%\vm.args" ( - @set vm_args="%releases_dir%\%release_version%\vm.args" -) else ( - @set vm_args="%node_root%\etc\vm.args" -) - -@%erl_exe% %erl_args% -boot %boot_file% -config %app_config% -args_file %vm_args% - -:set_trim -@set %1=%2 -@goto :EOF +@setlocal +@echo off +@setlocal enabledelayedexpansion + +@rem Parse arguments. erlsrv.exe prepends erl arguments prior to first ++. +@rem Other args are position dependent. +@set args="%*" +@for /F "delims=++ tokens=1,2,3" %%I in (%args%) do @( + @set erl_args=%%I + @call :set_trim node_name %%J + @rem Trim spaces from the left of %%K (node_root), which may have spaces inside + @for /f "tokens=* delims= " %%a in ("%%K") do @set node_root=%%a +) + +@set releases_dir=%node_root%\releases + +@rem parse ERTS version and release version from start_erl.dat +@for /F "usebackq tokens=1,2" %%I in ("%releases_dir%\start_erl.data") do @( + @call :set_trim erts_version %%I + @call :set_trim release_version %%J +) + +@set erl_exe="%node_root%\erts-%erts_version%\bin\erl.exe" +@set boot_file="%releases_dir%\%release_version%\%node_name%" + +@if exist "%releases_dir%\%release_version%\sys.config" ( + @set app_config="%releases_dir%\%release_version%\sys.config" +) else ( + @set app_config="%node_root%\etc\emqttd.config" +) + +@if exist "%releases_dir%\%release_version%\vm.args" ( + @set vm_args="%releases_dir%\%release_version%\vm.args" +) else ( + @set vm_args="%node_root%\etc\vm.args" +) + +set dest_path=%~dp0 +cd /d !dest_path!..\plugins +set current_path=%cd% +set plugins= +for /d %%P in (*) do ( +set "plugins=!plugins!!current_path!\%%P\ebin " +) +cd /d %node_root% +@%erl_exe% %erl_args% -boot %boot_file% -config %app_config% -args_file %vm_args% -pa %plugins% + +:set_trim +@set %1=%2 +@goto :EOF