Обчисліть файл .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 у терміналі.