Spec-Zone.ru › Elixir 1.11

Mix.Release

Определяет структуру выпуска и удобства для сборки релизов.

Краткое описание

Типы

application()
mode()
t()

Функции

%Mix.Release{}

Структура Mix.Release имеет следующие поля только для чтения

copy_app(release, app)

Копирует заданное описание приложения в релиз.

copy_ebin(release, source, target)

Копирует директорию ebin по адресу source в target, учитывая параметры релиза, такие как :strip_beams.

copy_erts(release)

Копирует ERTS, если релиз настроен на это.

make_boot_script(release, path, modes, prepend_paths \\ [])

Создаёт скрипты запуска.

make_cookie(release, path)

Копирует cookie в указанный путь.

make_start_erl(release, path)

Создаёт файл start_erl.data с версиями ERTS и релиза.

make_sys_config(release, sys_config, config_provider_path)

Создаёт структуру sys.config.

rel_templates_path(release, path)

Находит путь к шаблону для релиза.

strip_beam(binary, options \\ [])

Удаляет лишнюю информацию из файла beam для релиза.

Типы

application()

Спецификации

application() :: atom()

mode()

Спецификации

mode() :: :permanent | :transient | :temporary | :load | :none

t()

Спецификации

t() :: %Mix.Release{
  applications: %{required(application()) => keyword()},
  boot_scripts: %{required(atom()) => [{application(), mode()}]},
  config_providers: [{module(), term()}],
  erts_source: charlist() | nil,
  erts_version: charlist(),
  name: atom(),
  options: keyword(),
  overlays: [String.t()],
  path: String.t(),
  steps: [(t() -> t()) | :assemble, ...],
  version: String.t(),
  version_path: String.t() | {:from_app, application()}
}

Функции

%Mix.Release{}

Структура Mix.Release имеет следующие поля только для чтения:

  • :name - имя релиза в виде атома
  • :version - версия релиза в виде строки или {:from_app, app_name}
  • :path - путь к корню релиза
  • :version_path - путь к версии релиза внутри релиза
  • :applications - карта приложений с их определениями
  • :erts_source - исходный код erts в виде списка символов (или nil)
  • :erts_version - версия erts в виде списка символов

Следующие поля можно изменять, сохраняя их типы:

  • :boot_scripts - карта скриптов запуска, где имя скрипта — ключ, а значение — список ключевых слов со всеми приложениями, которые входят в него, и их режимами
  • :config_providers - список кортежей {config_provider, term}, где первый элемент — модуль, реализующий поведение Config.Provider, а term — значение, переданное ему при вызове Config.Provider.init/1
  • :options - список других параметров релиза, заданных пользователем
  • :overlays - список дополнительных файлов, добавленных к релизу. Если у вас есть пользовательский шаг, добавляющий дополнительные файлы в релиз, вы можете добавить эти файлы в поле :overlays, чтобы они также учитывались при последующих командах, таких как tar/zip. Каждый элемент в overlays — это относительный путь к корню релиза каждого файла
  • :steps - список функций, которые принимают релиз и возвращают релиз. Также должен содержать атом :assemble, который является внутренней стадией сборки. Также может содержать атом :tar для создания tar-архива релиза.

copy_app(release, app)

Спецификации

copy_app(t(), application()) :: boolean()

Копирует заданное описание приложения в релиз.

Предполагается, что приложение существует в релизе.

copy_ebin(release, source, target)

Спецификации

copy_ebin(t(), Path.t(), Path.t()) :: boolean()

Копирует директорию ebin по адресу source в target, учитывая параметры релиза, такие как :strip_beams.

copy_erts(release)

Спецификации

copy_erts(t()) :: boolean()

Копирует ERTS, если релиз настроен на это.

Возвращает true, если релиз был скопирован, иначе false.

make_boot_script(release, path, modes, prepend_paths \\ [])

Спецификации

make_boot_script(t(), Path.t(), [{application(), mode()}], [String.t()]) ::
  :ok | {:error, String.t()}

Создаёт скрипты запуска.

Он получает путь к файлу запуска без расширения, например, releases/0.1.0/start, и эта команда запишет start.rel, start.boot, и start.script в указанный путь, вернув {:ok, rel_path} или {:error, message}.

Скрипт запуска использует переменную окружения RELEASE_LIB, которая должна быть соответствующим образом установлена с --boot-var и указывать на каталог lib релиза.

make_cookie(release, path)

Спецификации

make_cookie(t(), Path.t()) :: :ok

Копирует cookie в указанный путь.

Если был указан параметр cookie, мы сравниваем его с содержимым файла (если он есть) и спрашиваем пользователя, хочет ли он перезаписать.

Если параметра нет, мы генерируем случайный — в первый раз.

make_start_erl(release, path)

Спецификации

make_start_erl(t(), Path.t()) :: :ok

Создаёт файл start_erl.data с версиями ERTS и релиза.

make_sys_config(release, sys_config, config_provider_path)

Спецификации

make_sys_config(t(), keyword(), Config.Provider.config_path()) ::
  :ok | {:error, String.t()}

Создаёт структуру sys.config.

Если есть поставщики конфигурации, то значение встраивается в конфигурацию приложения :elixir в sys_config, чтобы оно считывалось во время запуска и вызывало поставщиков.

Использует следующие параметры релиза для настройки своего поведения:

  • :reboot_system_after_config
  • :start_distribution_during_config
  • :prune_runtime_sys_config_after_boot

Если поставщиков конфигурации нет, он не изменяет sys_config.

rel_templates_path(release, path)

Находит путь к шаблону для релиза.

strip_beam(binary, options \\ [])

Спецификации

strip_beam(binary(), keyword()) :: {:ok, binary()} | {:error, :beam_lib, term()}

Удаляет лишнюю информацию из файла beam для релиза.

Оставляет только значимые фрагменты, необходимые для работы виртуальной машины, отбрасывая документацию, отладочную информацию, информацию о компиляции и другое.

Точные фрагменты, которые сохраняются, не документированы и могут измениться в будущих версиях.

© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/mix/1.11.2/Mix.Release.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API