Источник Config.Reader
API для чтения конфигурационных файлов, определённых с помощью Config.
В качестве поставщика
Config.Reader также может использоваться как Config.Provider. Поставщик конфигурации используется во время релизов для настройки приложений. При использовании в качестве поставщика, он ожидает единственный аргумент: путь к конфигурации (как описано в Config.Provider.config_path/0) для файла, который должен быть прочитан и загружен во время загрузки системы.
Например, если вы ожидаете, что целевая система будет иметь конфигурационный файл по абсолютному пути, вы можете добавить это в часть def project вашего mix.exs:
releases: [
demo: [
config_providers: [
{Config.Reader, "/etc/config.exs"}
]
]
]
Или если вы хотите прочитать пользовательский путь внутри релиза:
config_providers: [{Config.Reader, {:system, "RELEASE_ROOT", "/config.exs"}}]
Вы также можете передать список ключевых слов с опциями, где :path является обязательным ключом:
config_providers: [
{Config.Reader,
path: "/etc/config.exs",
env: :prod,
imports: :disabled}
]
Помните, что Mix уже загружает config/runtime.exs по умолчанию. Для получения дополнительных примеров и сценариев, см. модуль Config.Provider.
Краткое описание
Функции
- eval!(file, contents, opts \\ [])
Оценивает конфигурацию
contentsдля заданногоfile.- merge(config1, config2)
Объединяет две конфигурации.
- read!(file, opts \\ [])
Читает конфигурационный файл.
- read_imports!(file, opts \\ [])
Читает заданный конфигурационный файл и возвращает конфигурацию с импортами.
Функции
eval!(file, contents, opts \\ [])Источник
@spec eval!(Path.t(), binary(), keyword()) :: keyword()
Оценивает конфигурацию contents для заданного file.
Принимает те же опции, что и read!/2.
merge(config1, config2)Источник
@spec merge(keyword(), keyword()) :: keyword()
Объединяет две конфигурации.
Конфигурации объединяются вместе, значения во втором случае имеют больший приоритет, чем в первом, в случае конфликтов. Если оба значения установлены в списки ключевых слов, они объединяются глубоко.
Примеры
iex> Config.Reader.merge([app: [k: :v1]], [app: [k: :v2]]) [app: [k: :v2]] iex> Config.Reader.merge([app: [k: [v1: 1, v2: 2]]], [app: [k: [v2: :a, v3: :b]]]) [app: [k: [v1: 1, v2: :a, v3: :b]]] iex> Config.Reader.merge([app1: []], [app2: []]) [app1: [], app2: []]
read!(file, opts \\ [])Источник
@spec read!( Path.t(), keyword() ) :: keyword()
Читает конфигурационный файл.
Опции
:imports- список уже импортированных путей или:disabledдля отключения импортов:env- среда, в которой выполняется конфигурационный файл. См.Config.config_env/0для примера использования:target- целевая система, на которой выполняется конфигурационный файл. См.Config.config_target/0для примера использования
read_imports!(file, opts \\ [])Источник
@spec read_imports!(
Path.t(),
keyword()
) :: {keyword(), [Path.t()]} Читает заданный конфигурационный файл и возвращает конфигурацию с импортами.
Принимает те же опции, что и read!/2. Хотя обратите внимание, что опция :imports не может быть отключена в read_imports!/2.
© 2012-2024 The Elixir Team
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.17.2/Config.Reader.html