aboutsummaryrefslogtreecommitdiffstats
path: root/priv/templates/bin_windows
blob: 19c0d2dbcb6055b1c5f9dcfdb4c22b7a40ff76ca (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
:: 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
@call :set_boot_script_var

@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
@set boot=-boot "%boot_script%" -boot_var RELEASE_DIR "%release_root_dir%"
@"%erl%" %erl_opts% %sys_config% %boot% %*

@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%" -boot no_dot_erlang -noshell -eval "io:format(\"~s\", [filename:nativename(code:root_dir())])." -s init stop
@for /f "delims=" %%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%"
) else (
  @if exist "%possible_sys%.orig" (
    ren "%possible_sys%.orig" sys.config
    set sys_config=-config "%possible_sys%"
  )
)

:: Find the vm.args file
:find_vm_args
@set "possible_vm_args=%rel_dir%\vm.args"
@if exist "%possible_vm_args%" (
  set vm_args="%possible_vm_args%"
) else (
  @if exist "%possible_vm_args%.orig" (
    ren "%possible_vm_args%.orig" vm.args
    set vm_args="%possible_vm_args%"
  )
)
@goto :eof

:: set boot_script variable
:set_boot_script_var
@if exist "%rel_dir%\%rel_name%.boot" (
  set "boot_script=%rel_dir%\%rel_name%"
) else (
  set "boot_script=%rel_dir%\start"
)
@goto :eof