diff options
Diffstat (limited to 'priv/templates/bin_windows.dtl')
-rw-r--r-- | priv/templates/bin_windows.dtl | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/priv/templates/bin_windows.dtl b/priv/templates/bin_windows.dtl new file mode 100644 index 0000000..170d957 --- /dev/null +++ b/priv/templates/bin_windows.dtl @@ -0,0 +1,75 @@ +:: This is a simple start batch file that runs the release in an Erlang shell + +:: Set variables that describe the release +@set rel_name={{ rel_name }} +@set rel_vsn={{ rel_vsn }} +@set erts_vsn={{ erts_vsn }} +@set erl_opts={{ erl_opts }} + +:: Set the root release directory based on the location of this batch file +@set script_dir=%~dp0 +@for %%A in ("%script_dir%\..") do ( + @set "release_root_dir=%%~fA" +) +@set rel_dir=%release_root_dir%\releases\%rel_vsn% + +@call :find_erts_dir +@call :find_sys_config + +@set rootdir=%release_root_dir% +@set bindir=%erts_dir%\bin +@set progname=erl +@set erl=%bindir%\erl + +cd %rootdir% + +:: Write the erl.ini file +@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%" + +:: Start the release in an `erl` shell +@%erl% %erl_opts% %sys_config% -boot "%rel_dir%\%rel_name%" %* + +@goto :eof + +:: Find the ERTS dir +:find_erts_dir +@set erts_dir=%release_root_dir%\erts-%erts_vsn% +@if exist %erts_dir% ( + @goto :set_erts_dir_from_default +) else ( + @goto :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=%erts_dir% +@set root_dir=%release_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 + +:: Find the sys.config file +:find_sys_config +@set possible_sys=%rel_dir%\sys.config +@if exist "%possible_sys%" ( + @set sys_config=-config "%possible_sys%" +) +@goto :eof |