bionic (5) config.5.gz

Provided by: erlang-manpages_20.2.2+dfsg-1ubuntu2_all bug

NAME

       config - Configuration file.

DESCRIPTION

       A configuration file contains values for configuration parameters for the applications in the system. The
       erl command-line argument -config Name tells the system to use data  in  the  system  configuration  file
       Name.config.

       Configuration  parameter values in the configuration file override the values in the application resource
       files (see app(5). The values in the configuration file can be  overridden  by  command-line  flags  (see
       erts:erl(1).

       The value of a configuration parameter is retrieved by calling application:get_env/1,2.

FILE SYNTAX

       The configuration file is to be called Name.config, where Name is any name.

       File .config contains a single Erlang term and has the following syntax:

       [{Application1, [{Par11, Val11}, ...]},
        ...
        {ApplicationN, [{ParN1, ValN1}, ...]}].

         Application = atom():
           Application name.

         Par = atom():
           Name of a configuration parameter.

         Val = term():
           Value of a configuration parameter.

SYS.CONFIG

       When  starting Erlang in embedded mode, it is assumed that exactly one system configuration file is used,
       named sys.config. This file is to be located in $ROOT/releases/Vsn, where $ROOT is  the  Erlang/OTP  root
       installation directory and Vsn is the release version.

       Release  handling relies on this assumption. When installing a new release version, the new sys.config is
       read and used to update the application configurations.

       This means that specifying another .config file, or more .config files, leads to inconsistent  update  of
       application  configurations.  There  is,  however, a syntax for sys.config that allows pointing out other
       .config files:

       [{Application, [{Par, Val}]} | File].

         File = string():
           Name of another .config file. Extension .config can be omitted. It is  recommended  to  use  absolute
           paths. A relative path is relative the current working directory of the emulator.

       When  traversing  the  contents  of  sys.config  and a filename is encountered, its contents are read and
       merged with the result so far. When an application configuration tuple {Application, Env} is found, it is
       merged  with the result so far. Merging means that new parameters are added and existing parameter values
       overwritten.

       Example:

       sys.config:

       [{myapp,[{par1,val1},{par2,val2}]},
        "/home/user/myconfig"].

       myconfig.config:

       [{myapp,[{par2,val3},{par3,val4}]}].

       This yields the following environment for myapp:

       [{par1,val1},{par2,val3},{par3,val4}]

       The behavior if a file specified in sys.config does not exist, or is erroneous, is backwards  compatible.
       Starting  the  runtime  system  will  fail.  Installing a new release version will not fail, but an error
       message is returned and the erroneous file is ignored.

SEE ALSO

       app(5), erts:erl(1), OTP Design Principles