aboutsummaryrefslogtreecommitdiffstats
path: root/overlays/index.md
blob: a6b6c4ef8749cd5573ac552fe28c20c86501ad56 (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
---
layout: default
title: Relx Overlays
---

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 `reltool.config` to your
`relx.config` and it would work in exactly the same way. In Relx
you have more options though. Relx exposes more variables along
with the full power of a Django templating system (see
[erlydtl](http://code.google.com/p/erlydtl/)). You can look at the
documentation there for the full syntax supported. The variables
supported are listed below.

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)
* *overrides.<AppName>* : The override directory for said <AppName>
* *goals* : The list of user specified goals in the system
* *lib_dirs* : The list of library directories, both user specified and derived
* *config_file* : The list of config file used in the system
* *providers* : The list of provider names used for this run of relx
* *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_vsn` (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
* *release_applications* : A list of applications included in the release
* *release.[AppName].version : The version of `<AppName>`
* *release.[AppName].dir : The on system directory of `<AppName>`
* *release.[AppName].active_dependencies : The list of active application dependencies for `<AppName>`
* *release.[AppName].library_dependencies : The list of library application dependencies for `<AppName>`
* *release.[AppName].link : Indicates if this application should be linked in or not