خيار البناء اسم، مع قيمة اختيارية، يقرؤه elide.pkl عند تقييمه.
تمرير الخيارات
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 و -f NAME، في أي موضع. الوسائط بعد -- ليست خيارات أبدًا. ينتمي --args إلى
المهمة run؛ راجع مهام البناء.
كل أمر يعمل على مشروع يقبل الخيارات:
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- الخيار دون قيمة (
-fRELEASE) يعطيtrueمع bool(...)، وخطأً مع string(...). - القيمة هي كل ما يلي أول
=، كما هو:-fEXPR=a=bيعطيa=b. - الخيار المكرر يحتفظ بكل قيمة؛ وتقرأ دوال الوصول أحادية القيمة القيمة الأخيرة (الخيارات المكررة).
- لا تحتاج الخيارات إلى تصريح؛ والاسم غير المعروف يُعدّ غائبًا.
- لا يمكن أن تكون الأسماء فارغة أو أن تحتوي على
,أو=.
قراءة الخيارات في 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")| دالة الوصول | تُرجع |
|---|---|
has(name) | هل مُرّر الخيار، بقيمة أو دونها. |
count(name) | عدد مرات تمريره؛ 0 عند الغياب. |
string(name) | القيمة؛ null عند الغياب؛ وترمي خطأً إن كان دون قيمة. |
stringOr(name, orElse) | القيمة، أو orElse عند الغياب. |
bool(name) | false عند الغياب، و true دون قيمة؛ true/false، yes/no، on/off، 1/0 (بأي حالة أحرف)؛ وإلا ترمي خطأً. |
int(name) | القيمة بوصفها Int؛ null عند الغياب؛ وترمي خطأً إن لم تكن عددًا صحيحًا. |
strings(name) | كل القيم بالترتيب؛ فارغة عند الغياب؛ وترمي خطأً عند ظهور دون قيمة. |
stringsOr(name, orElse) | كل القيم، أو orElse عند الغياب. |
ints(name) | كل القيم بوصفها Int؛ فارغة عند الغياب؛ وترمي خطأً إن لم تكن إحداها عددًا صحيحًا. |
bools(name) | كل القيم بوصفها Boolean؛ فارغة عند الغياب؛ والظهور دون قيمة يُقرأ true. |
raw | Mapping<String, String> للقيم الفعلية؛ والخيار دون قيمة يقابله "". |
all | Mapping<String, List<String>> لكل القيم. |
استخدم strings(...) لقبول قيمة واحدة أو أكثر. تفشل دوال الوصول ذات الأنواع عند المُدخلات غير الصالحة:
–– Pkl Error ––
build flag `RELEASE` is not a boolean: `perhaps`متغيرات البيئة
لا يرى read("env:NAME") إلا PATH و HOME و USER و LANG و LC_* و TZ و CI و TERM و SHELL و OS و
TMPDIR و ELIDE_*؛ وأي متغير آخر يُقرأ غائبًا. استخدم خيار بناء، أو اسمح بالمزيد:
elide build --allow-env=GITHUB_SHA,JAVA_HOME
elide build --allow-env # every variableالخيارات المكررة
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 valueتحتفظ القيم بالفواصل والمسافات و = ومحارف Unicode. وتتحقق دوال الوصول إلى القوائم من كل عنصر:
–– Pkl Error ––
build flag `N` is not an integer: `x1`الخيارات داخل الكتل المتداخلة
داخل جسم كائن متداخل، لا يُحلّ build المجرد. اربط متغيرًا local على مستوى الوحدة، أو استخدم
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"
}
}
}
}