start_erl.cmd 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. @setlocal
  2. @echo off
  3. @setlocal enabledelayedexpansion
  4. @rem Parse arguments. erlsrv.exe prepends erl arguments prior to first ++.
  5. @rem Other args are position dependent.
  6. @set args="%*"
  7. @for /F "delims=++ tokens=1,2,3" %%I in (%args%) do @(
  8. @set erl_args=%%I
  9. @call :set_trim node_name %%J
  10. @rem Trim spaces from the left of %%K (node_root), which may have spaces inside
  11. @for /f "tokens=* delims= " %%a in ("%%K") do @set node_root=%%a
  12. )
  13. @set releases_dir=%node_root%\releases
  14. @rem parse ERTS version and release version from start_erl.dat
  15. @for /F "usebackq tokens=1,2" %%I in ("%releases_dir%\start_erl.data") do @(
  16. @call :set_trim erts_version %%I
  17. @call :set_trim release_version %%J
  18. )
  19. @set erl_exe="%node_root%\erts-%erts_version%\bin\erl.exe"
  20. @set boot_file="%releases_dir%\%release_version%\%node_name%"
  21. @if exist "%releases_dir%\%release_version%\sys.config" (
  22. @set app_config="%releases_dir%\%release_version%\sys.config"
  23. ) else (
  24. @set app_config="%node_root%\etc\emqttd.config"
  25. )
  26. @if exist "%releases_dir%\%release_version%\vm.args" (
  27. @set vm_args="%releases_dir%\%release_version%\vm.args"
  28. ) else (
  29. @set vm_args="%node_root%\etc\vm.args"
  30. )
  31. set dest_path=%~dp0
  32. cd /d !dest_path!..\plugins
  33. set current_path=%cd%
  34. set plugins=
  35. for /d %%P in (*) do (
  36. set "plugins=!plugins!"!current_path!\%%P\ebin" "
  37. )
  38. cd /d %node_root%
  39. @%erl_exe% %erl_args% -boot %boot_file% -config %app_config% -args_file %vm_args% -pa %plugins%
  40. :set_trim
  41. @set %1=%2
  42. @goto :EOF