aboutsummaryrefslogtreecommitdiffstats
path: root/priv/templates/bin_windows.dtl
diff options
context:
space:
mode:
Diffstat (limited to 'priv/templates/bin_windows.dtl')
-rw-r--r--priv/templates/bin_windows.dtl75
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