我正在使用Reltool构建一个版本。该应用程序需要启动配置文件。它使用以下函数读取配置文件:
read_config(Filename) ->
{ok, [Config]} = file:consult(filename:join(
[filename:dirname(code:which(?MODULE)),
"..", "config", Filename])),
Config.
使用配置文件以便Reltool构建工作版本有什么好方法?
答案 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应用程序,对你来说似乎很容易。