Вычислите файл .pkl или .pcf напрямую и отправьте результат рендеринга в stdout. Так
можно генерировать конфигурацию приложения, передавать её инструментам развёртывания или проверять конфигурацию перед
коммитом. Проект Elide не требуется.
Генерация JSON или YAML
Начните с config.pkl:
service = "api"
port = 8080
Выберите формат, который читает ваше приложение, и перенаправьте результат в файл:
elide --format=json config.pkl > config.json
elide --format=yaml config.pkl > config.yaml
Вывод JSON содержит service и port с теми же значениями и типами. Явная команда run тоже работает:
elide run --format json config.pkl
Входные файлы .pkl и .pcf принимают одни и те же параметры. Например, преобразуйте существующую конфигурацию PCF в
JSON:
elide --format=json config.pcf > config.json
Выбор формата вывода
| Параметр | Вывод | Типичное применение |
|---|---|---|
--format=json | JSON | Настройки приложений и инструменты, читающие JSON |
--format=yaml | YAML | Конфигурация развёртывания |
--format=pcf | Pkl Configuration Format | Просмотр вычисленной конфигурации в нотации Pkl |
Без --format | Настроенный вывод модуля; по умолчанию PCF | Соблюдение собственного определения вывода модуля |
Вывод TOML не поддерживается. Неподдерживаемый формат завершается с кодом выхода 2.
Общая конфигурация для нескольких файлов
Относительные импорты разрешаются от входного файла, поэтому конфигурация может переиспользовать соседние значения по
умолчанию, даже если её вызывают из другого каталога. Например, положите defaults.pkl и config.pkl вместе в
config/:
// defaults.pkl
port = 8080
// config.pkl
import "defaults.pkl"
service = "api"
port = defaults.port
Из корня репозитория отрисуйте конфигурацию командой:
elide --format=json config/config.pkl
Использование вывода в скриптах и CI
Stdout содержит только отрисованный документ; диагностика и ошибки вычисления идут в stderr. Для перенаправления или
конвейеров флаг --quiet не нужен. Например, при установленном jq посмотрите значение свойства:
elide --format=json config.pkl | jq '.port'
Манифест проекта отрисовывается так же — так видна его полностью вычисленная конфигурация вместе со значениями по умолчанию:
elide --format=json elide.pkl | jq '.dependencies'
Ошибка вычисления завершается с кодом 1 и не записывает отрисованное содержимое в stdout. Чтобы обновить файл
атомарно, используйте --out вместо перенаправления оболочки:
elide --format=json --out config.json config.pkl
--out config.json записывает временный файл в целевой каталог и атомарно заменяет config.json только после
успешного вычисления и записи. При ошибке существующий файл не меняется, а код выхода ненулевой. Целевой каталог должен
существовать и поддерживать атомарную замену. Относительные пути разрешаются от рабочего каталога.
Используйте --out -, чтобы явно выбрать stdout:
elide --format=json --out - config.pkl
Отрисовка документов отклоняет --sandbox и --limit; эти средства управления выполнением к этой команде не
относятся. Все параметры команды см. в справочнике CLI. Как читать README или ранбук в том же
терминале, см. в разделе Markdown в терминале.