xenial (5) config.5.gz

Provided by: erlang-manpages_18.3-dfsg-1ubuntu3.1_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 will 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 erl(1)).

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

FILE SYNTAX

       The configuration file should be called Name.config where Name is an arbitrary name.

       The .config file contains one single Erlang term. The file has the following syntax:

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

         * Application = atom() is the name of the application.

         * Par = atom() is the name of a configuration parameter.

         * Val = term() is the 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 should 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, or additional, .config files would lead  to  inconsistent  update  of
       application  configurations.  Therefore, in Erlang 5.4/OTP R10B, the syntax of sys.config was extended to
       allow pointing out other .config files:

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

         * File = string() is the name of another .config file. The extension .config  may  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 will yield the following environment for myapp:

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

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

SEE ALSO

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