配置文件和Reltool

时间:2012-04-30 20:40:24

标签: erlang

我正在使用Reltool构建一个版本。该应用程序需要启动配置文件。它使用以下函数读取配置文件:

read_config(Filename) ->
    {ok, [Config]} = file:consult(filename:join(
                                  [filename:dirname(code:which(?MODULE)),
                                   "..", "config", Filename])),
    Config.

使用配置文件以便Reltool构建工作版本有什么好方法?

2 个答案:

答案 0 :(得分:3)

如果您需要更专业的配置文件,rebar允许您将文件复制到您的版本中,例如。使用etc文件中的rebar选项etc默认情标准overlay配置选项):

reltool.config

您可以使用overlay文件将配置文件作为参数传递给vm:

reltool

您的启动脚本应将vm.args文件作为参数传递给vm(再次%% reltool.config {overlay, [{copy, "../path/foo.config", "etc/foo.config"}, ... 生成一个自动执行此操作的脚本)。

函数vm.args允许您读取更多专用于vm的参数,例如:

%% vm.args
-config etc/foo.config

rebar

答案 1 :(得分:1)

您不需要拥有自己的配置文件,除非它用于非常特殊的目的。 如果您的配置文件因版本而异,您可以将这些不同的配置添加到<application>/ebin/<application>.app

您可以将默认配置变量设置为<application>/ebin/<application>.app。 有关详细信息,请参阅http://www.erlang.org/doc/man/app.html

然后,您可以使用配置变量 application:get_env(<application_name>, <key>, <default_value>)。 如果未定义,您还可以使用application:set_env/3进行设置。 有关详情,请查看此http://www.erlang.org/doc/man/application.html

然后,您还可以通过定义<any_name_or_system_name>.config来覆盖这些应用程序变量,然后在使用erl --config <file_name>.config命令开始时使用该变量。您可以查看这个以启动命令选项http://www.erlang.org/doc/man/erl.html

启动命令时,您还可以使用-<application> <key> <value>覆盖配置变量。

您还可以查看此应用程序的配置文件语法。 http://www.erlang.org/doc/man/config.html

一旦你成功构建了一个OTP应用程序,对你来说似乎很容易。