Aller au contenu

Rendre une configuration Pkl

Générez du JSON, du YAML et du PCF à partir de fichiers de configuration Pkl pour vos applications, outils de déploiement et CI.

Lire hors ligneelide help --lang fr pkl-configuration

Sur cette page

Évaluez directement un fichier .pkl ou .pcf et envoyez son rendu sur stdout. Utilisez-le pour générer la configuration d’une application, alimenter des outils de déploiement ou inspecter une configuration avant de la committer. Aucun projet Elide n’est requis.

Générer du JSON ou du YAML

Partez de config.pkl :

pkl
service = "api"
port = 8080
utf-8 · pkl · Lignes : 2

Choisissez le format que lit votre application et redirigez le résultat vers un fichier :

Terminal
shell
elide --format=json config.pkl > config.json
elide --format=yaml config.pkl > config.yaml

La sortie JSON contient service et port avec les mêmes valeurs et types. La commande explicite run fonctionne aussi :

Terminal
shell
elide run --format json config.pkl

Les entrées .pkl et .pcf acceptent les mêmes options. Par exemple, convertissez une configuration PCF existante en JSON :

Terminal
shell
elide --format=json config.pcf > config.json

Choisir un format de sortie

OptionSortieUsage typique
--format=jsonJSONRéglages d’application et outils qui lisent du JSON
--format=yamlYAMLConfiguration de déploiement
--format=pcfPkl Configuration FormatInspecter la configuration évaluée en notation Pkl
Sans --formatLa sortie configurée du module ; PCF par défautRespecter la définition de sortie propre au module

La sortie TOML n’est pas prise en charge. Un format non pris en charge échoue avec le code de sortie 2.

Partager une configuration entre fichiers

Les imports relatifs sont résolus depuis le fichier d’entrée : une configuration peut donc réutiliser des valeurs par défaut voisines même lorsqu’elle est invoquée depuis un autre répertoire. Par exemple, placez defaults.pkl et config.pkl ensemble sous config/ :

pkl
// defaults.pkl
port = 8080
utf-8 · pkl · Lignes : 2
pkl
// config.pkl
import "defaults.pkl"

service = "api"
port = defaults.port
utf-8 · pkl · Lignes : 5

Depuis la racine du dépôt, rendez la configuration avec :

Terminal
shell
elide --format=json config/config.pkl

Utiliser la sortie dans les scripts et la CI

Stdout ne contient que le document rendu ; les diagnostics et les erreurs d’évaluation vont sur stderr. Aucune option --quiet n’est nécessaire pour les redirections ou les pipelines. Par exemple, avec jq installé, inspectez une propriété :

Terminal
shell
elide --format=json config.pkl | jq '.port'

Le manifeste du projet se rend de la même façon, ce qui montre sa configuration entièrement évaluée, valeurs par défaut comprises :

Terminal
shell
elide --format=json elide.pkl | jq '.dependencies'

Un échec d’évaluation sort avec le code 1 et n’écrit aucun contenu rendu sur stdout. Pour mettre à jour un fichier de façon atomique, utilisez --out plutôt qu’une redirection du shell :

Terminal
shell
elide --format=json --out config.json config.pkl

--out config.json écrit un fichier temporaire dans le répertoire de destination et ne remplace config.json de façon atomique qu’une fois l’évaluation et l’écriture réussies. Les échecs laissent le fichier existant inchangé et sortent avec un code non nul. Le répertoire de destination doit exister et permettre le remplacement atomique. Les chemins relatifs sont résolus depuis votre répertoire de travail.

Utilisez --out - pour choisir explicitement stdout :

Terminal
shell
elide --format=json --out - config.pkl

Le rendu de documents refuse --sandbox et --limit ; ces contrôles d’exécution ne s’appliquent pas à cette commande. Pour toutes les options de la commande, voir la référence de la CLI. Pour lire un README ou un runbook dans le même terminal, voir Markdown dans le terminal.

Cette page vous a-t-elle aidé ?