Sane, simple release creation for Erlang http://erlware.github.io/relx
A release assembler for Erlang.
Synopsis
relx [options] [release-specification-file]
Description
Relx assembles releases for an Erlang/OTP release. Given a release specification and a list of directories in which to search for OTP applications it will generate a release output. That output depends heavily on what plugins available and what options are defined, but usually it is simply a well configured release directory.
The release-specification-file is optional but otherwise contains additional specification information for releases.
Building
To build relx and generate a standalone escript executable:
$ ./rebar3 update
$ ./rebar3 escriptize
This creates the executable
_build/default/bin/relx
.Building on Windows
To build relx on Windows you'll need to have rebar3 installed and the path to the rebar3 binary added to the
PATH
environment variable. To start the build use the bootstrap
batch file:c:\> bootstrap
This creates the executable
relx
and the relx.cmd
shortcut script. Copy both of these files to a directory and make the directory available to the PATH
environment variable.Config File
By default
relx
looks for relx.config
in the current working directory:{release, {relname, "vsn"},
[app1,
app2]}.
{extended_start_script, true}.
Options
Short | Long | Type | Default | Description |
---|---|---|---|---|
-r | --root | string | ./ | Sets the root of the project |
-n | --relname | string | Name for the release that will be generated | |
-v | --relvsn | string | Version for the release | |
-g | --goal | string | A goal for the system. These are usually the OTP apps that are part of the release | |
-u | --upfrom | string | The release to upgrade from. Only valid with relup target | |
-o | --output-dir | string | ./ | The output directory for the release |
-l | --lib-dir | string | Additional dirs to search for OTP apps | |
--system_libs | boolean/string | true | If true include a copy of system libs used to build with, if a path include system libs at that path. If false, do not include system libs | |
-p | --path | string | Additional dirs to add to Erlang code path | |
--default-libs | boolean | true | Whether to use the default system added lib dirs (means you must add them all manually) | |
-V | --verbose | integer | 2 | The verbosity level between 0 and 3 |
-a | --override_app | string | An app name and a directory to override in the form appname:dir | |
-c | --config | string | ./relx.config | Config file path |
--overlay_vars | string | Path to a file of overlay variables | ||
--vm_args | string | Path to a file to use for vm.args | ||
--sys_config | string | Path to a file to use for sys.config | ||
-d | --dev-mode | boolean | false | Symlink all applications and configuration into the release instead of copying |
-i | --include-erts | boolean/string | true | If true include a copy of erts used to build with, if a path include erts at that path. If false, do not include erts |
Wiki
from https://github.com/erlware/relx