49 lines
1.5 KiB
PowerShell
49 lines
1.5 KiB
PowerShell
#! /usr/bin/pwsh
|
|
# This is a simple start script file that runs the release in an Erlang shell
|
|
|
|
# Terminate on error
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
# Set variables that describe the release
|
|
$rel_name = '{{ rel_name }}'
|
|
$rel_vsn = '{{ rel_vsn }}'
|
|
$erts_vsn = '{{ erts_vsn }}'
|
|
$erl_opts = '{{ erl_opts }}'
|
|
|
|
# export these to match mix release environment variables
|
|
$RELEASE_NAME = '{{ rel_name }}'
|
|
$RELEASE_VERSION = '{{ rel_vsn }}'
|
|
$RELEASE_PROG = $MyInvocation.MyCommand.Name
|
|
|
|
# Ensure we have PSScriptRoot
|
|
if (!(Test-Path variable:global:PSScriptRoot)) {
|
|
# Support for powershell 2.0
|
|
$PSScriptRoot = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
|
|
}
|
|
|
|
# Import psutil helper functions
|
|
. $PSScriptRoot\psutil.ps1
|
|
|
|
# Set the root release directory based on the location of this script
|
|
$rootdir = Split-Path -Parent -Path $PSScriptRoot
|
|
$rel_dir = "$rootdir\releases\$rel_vsn"
|
|
|
|
$erts_root, $erts_dir = Find-ERTS -RelRoot $rootdir -Vsn $erts_vsn
|
|
$sys_config = Find-FormatConfig -RelDir $rel_dir -File 'sys.config'
|
|
$vm_args = Find-FormatConfig -RelDir $rel_dir -File 'vm.args'
|
|
$boot_script = Find-BootScript -RelDir $rel_dir -RelName $rel_name
|
|
$werl = "$erts_dir\bin\werl.exe"
|
|
|
|
# Set the ERL_LIBS environment variable
|
|
$env:ERL_LIBS = "$rootdir\lib"
|
|
|
|
# Start the release in an `erl` shell
|
|
$params = @($erl_opts, '-boot', $boot_script)
|
|
if (![string]::IsNullOrEmpty($sys_config)) { $params += '-config', $sys_config }
|
|
if (![string]::IsNullOrEmpty($vm_args)) { $params += '-args_file', $vm_args }
|
|
$params += $args
|
|
& $werl $params
|
|
|
|
# Cleanup
|
|
$env:ERL_LIBS = ''
|