1
通常, 在 elixir 项目 release 之后, 都会生成一个 sys.config
文件. 包含了项目的配置信息. 这个文件是由 erlang 的列表加元组层层嵌套而成, 对于不熟悉 erlang 的人来说, 可读性较差, 修改起来也很麻烦. 所以, 我们能否直接将 elixir 的配置文件转换成 sys.config
, 或者是, 直接使用一个 mix 命令就可以生成 sys.config
文件呢?
2
首先, 在项目根目录新建一个 tasks/wizard.config.exs
文件(名字可以任意):
defmodule Mix.Tasks.Wizard.Config do
@moduledoc """
Convert elixir config file to erlang sys.config.
"""
use Mix.Task
def run(_opts) do
config = Mix.Config.read!("config/config.exs")
sys_config_string = :io_lib.format('~p.~n', [config]) |> List.to_string()
File.write("sys.config", sys_config_string)
end
end
可以看到, 我们创建了一个 mix 命令, 它的内容就是读取 elixir 的 config, 再写入sys.config
文件中.
3
要想使用这个 mix 命令, 我们还需要一些额外操作. 在 mix.exs
文件中加入(在 module 之外):
Enum.each Path.wildcard("tasks/*.exs"), &Code.require_file/1
然后运行 mix compile
.
现在, 运行 mix wizard.config
, 就可以在项目根目录发现新生成的 sys.config
文件了.
4
相关资料
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。