Une option de build est un nom, avec une valeur facultative, que elide.pkl lit lors de son évaluation.
Passer des options
elide build run --args="Hello World 🌎" --flag=RELEASE --flag=VERSION=1.2.3
elide build run --args="Hello World 🌎" -fRELEASE -fVERSION=1.2.3--flag NAME et -f NAME fonctionnent aussi, à n’importe quelle position. Les arguments après -- ne sont jamais des
options. --args appartient à la tâche run ; voir Tâches de build.
Toutes les commandes qui travaillent sur un projet acceptent des options :
elide run -fRELEASE -fVERSION=1.2.3 -- "Hello World 🌎"
elide install --flag=RELEASE
elide format -fNO_KOTLIN
elide build -fRELEASE
elide test -fFAST
elide project export -fRELEASE # shows the evaluated result- Une option sans valeur (
-fRELEASE) donnetruepourbool(...)et une erreur pourstring(...). - La valeur est tout ce qui suit le premier
=, telle quelle :-fEXPR=a=bdonnea=b. - Une option répétée conserve chaque valeur ; les accesseurs scalaires lisent la dernière (Options répétées).
- Les options ne se déclarent pas ; un nom inconnu est absent.
- Les noms ne peuvent pas être vides ni contenir
,ou=.
Lire les options dans elide.pkl
amends "elide:project.pkl"
local isRelease = build.flags.bool("RELEASE")
name = if (isRelease) "demo-release" else "demo-debug"
version = build.flags.stringOr("VERSION", "0.0.0")| Accesseur | Renvoie |
|---|---|
has(name) | Si l’option a été passée, avec ou sans valeur. |
count(name) | Nombre de passages ; 0 si absente. |
string(name) | La valeur ; null si absente ; lève une erreur si sans valeur. |
stringOr(name, orElse) | La valeur, ou orElse si absente. |
bool(name) | false si absente, true si sans valeur ; true/false, yes/no, on/off, 1/0 (casse indifférente) ; sinon lève une erreur. |
int(name) | La valeur en Int ; null si absente ; lève une erreur si ce n’est pas un entier. |
strings(name) | Toutes les valeurs dans l’ordre ; vide si absente ; lève une erreur sur une occurrence sans valeur. |
stringsOr(name, orElse) | Toutes les valeurs, ou orElse si absente. |
ints(name) | Toutes les valeurs en Int ; vide si absente ; lève une erreur si l’une n’est pas un entier. |
bools(name) | Toutes les valeurs en Boolean ; vide si absente ; une occurrence sans valeur vaut true. |
raw | Mapping<String, String> des valeurs effectives ; une option sans valeur correspond à "". |
all | Mapping<String, List<String>> de toutes les valeurs. |
Utilisez strings(...) pour accepter une ou plusieurs valeurs. Les accesseurs typés échouent sur une entrée
incorrecte :
–– Pkl Error ––
build flag `RELEASE` is not a boolean: `perhaps`Variables d’environnement
read("env:NAME") ne voit que PATH, HOME, USER, LANG, LC_*, TZ, CI, TERM, SHELL, OS, TMPDIR et
ELIDE_* ; toute autre variable est lue comme absente. Utilisez une option de build, ou autorisez-en davantage :
elide build --allow-env=GITHUB_SHA,JAVA_HOME
elide build --allow-env # every variableOptions répétées
elide build -fARG=one -fARG=two -fARG='three, and a half'local args = build.flags.strings("ARG") // List("one", "two", "three, and a half")
local first = build.flags.all["ARG"].first
local latest = build.flags.string("ARG") // "three, and a half" — scalars read the last valueLes valeurs conservent les virgules, les espaces, = et Unicode. Les accesseurs de liste vérifient chaque élément :
–– Pkl Error ––
build flag `N` is not an integer: `x1`Options dans des blocs imbriqués
Dans le corps d’un objet imbriqué, build seul ne se résout pas. Liez un local au niveau du module, ou utilisez
module.build.flags :
local wantsExtra = build.flags.bool("EXTRA")
dependencies {
maven {
packages {
"com.google.guava:guava:33.0.0-jre"
when (wantsExtra) {
"com.example:extra:1.0.0"
}
when (module.build.flags.bool("MORE")) {
"com.example:more:1.0.0"
}
}
}
}