Skip to content

Configuring Assemblies

hyperthunk edited this page Apr 30, 2011 · 14 revisions

An "assembly" is a group of files and/or directories assembled into an archive and distributed. File system entries are included (or excluded) by setting up the appropriate entries in your configuration. For example, consider the following additions to a standard, top level rebar.config, which will put the entire [rebar generated release](https://github.com/basho/rebar/wiki/Release-handling) into an archive, but exclude the erts subdirectories.

{sub_dirs, ["rel"]}.
{dist, [
    {incl_dirs, ["rel/*"]},
    {excl_dirs, ["**/erts-*"]}
]}.

The plugin will work out the difference between overlapping includes and excludes so as to remove the directory matching the +erts-* + glob pattern from the output prior to archiving.

Assembly Configuration Parameters

These parameters can be given to any assembly tuple, wherever it is sourced from.

Option Description Default

format

The output format, one of zip,tar,targz.

targz

outdir

The output directory into which all assemblies should be placed.

./dist

workdir

The directory in which all temporary file system entries should be dealt with.

./dist/.work

incl_dirs

List of glob patterns, literal folder names or folder specs to include.

No Default

excl_dirs

List of glob patterns, literal folder names or folder specs to exclude.

No Default

incl_files

List of glob patterns, literal file names or file specs to include.

No Default

excl_files

List of glob patterns, literal file names or file specs to exclude.

No Default

Notes

The incl and excl options for both files and folders take lists, containing one of three kinds of configuration entry. The first is a simple path, which can be relative or absolute and is represented as a string. The second, a glob expression passed to filelib:fold_files/5 in order to collect files (or directories), also represented as a string.

Clone this wiki locally