Skip to content
Luis Rascão edited this page Oct 29, 2016 · 4 revisions

Overlays

Overlays as defined in Rebar are directly supported in Relx. So you can take your Overlay configuration and move it to your relx.config and it should just work. For example, you could take the following:

{overlay_vars, "vars.config"}.
{overlay, [{mkdir, "log/sasl"},
            {copy, "files/erl", "{{erts_vsn}}/bin/erl"},
            {copy, "files/nodetool", "{{erts_vsn}}/bin/nodetool"},
            {template, "files/app.config", "etc/app.config"},
            {template, "files/vm.args", "etc/vm.args"}]}.

and move it directly from your rebar.config to your relx.config and it would work in exactly the same way, except wildcards are not currently supports, but a path to a directory will copy all the content. In Relx you have more options though. Relx exposes more variables along with mustache (https://github.com/soranoba/mustache). You can look at the documentation there for the full syntax supported. The variables supported are listed below. Relx also allows you to include other overlay files from an overlay file, the syntax is the same as used in Erlang (see config).

Available Variables

  • log : The current log level in the format of (<logname>:<loglevel>)
  • output_dir : The current output directory for the built release
  • target_dir : The same as output_dir, exists for backwards compatibility
  • overridden : The current list of overridden apps (a list of app names)
  • lib_dirs : The list of library directories, both user specified and derived
  • config_file : The list of config file used in the system
  • sys_config : The location of the sys config file
  • root_dir : The root dir of the current project
  • default_release_name : The current default release name for the relx run
  • default_release_version : The current default release version for the relx run
  • default_release : The current default release for the relx run
  • release_erts_version : The version of the Erlang Runtime System in use
  • erts_vsn : The same as release_erts_version (for backwards compatibility)
  • release_name : The currently executing release
  • release_version : the currently executing version
  • rel_vsn : Same as release_version. Exists for backwards compatibility

Next: Dynamic Configuration

Clone this wiki locally