rebar3/_build/default/lib/relx/priv/templates/bin_windows_ps

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 = ''