پرش به محتویات

جایگزین‌ها

فیلد run یک الگوی کوچک است. جایگزین‌های نوشته‌شده میان دو آکولاد پیش از اجرای فرمان با مقادیر پارامترها جایگزین می‌شوند.

دو الگو تقریباً همهٔ موارد را پوشش می‌دهند:

  • {{.name}} مقدار پارامتری به نام name را درج می‌کند.
  • {{if .name}} ... {{end}} بخش میانی را فقط زمانی می‌آورد که name مقداری داشته باشد.

درج مقدار

یک مقدار در میانهٔ فرمان

functions/tail-log.yaml
name: tail-log
run: "tail -n 200 {{.path}}"
params:
  - name: path
    required: true
    description: مسیر فایل گزارش

دکمه‌ای با path: "/var/log/app.log" فرمان tail -n 200 /var/log/app.log را اجرا می‌کند.

بخش‌های اختیاری

مقدار خالی، {{if .name}} را نادرست می‌کند و کل بلوک ناپدید می‌شود. این‌گونه یک flag را فقط در صورت نیاز اضافه می‌کنید.

ساخت بخش اختیاری با جایگزین

functions/tail-log.yaml
name: tail-log
run: "tail -n 200 {{.path}}{{if .args}} | grep -- {{.args}}{{end}}"
params:
  - name: path
    required: true
    description: مسیر فایل گزارش
  - name: args
    description: متن اختیاری برای فیلتر

دو دکمه از آن استفاده می‌کنند، یکی با فیلتر و دیگری بدون آن:

دادن مقادیر از دکمه

دکمه‌های گزارش برنامه
- name: App log
  type: button
  function: tail-log
  path: "/var/log/app.log"

- name: App errors
  type: button
  function: tail-log
  path: "/var/log/app.log"
  args: "ERROR"

گزارش برنامه فرمان tail -n 200 /var/log/app.log را اجرا می‌کند و خطاهای برنامه فرمان tail -n 200 /var/log/app.log | grep -- ERROR را.

همچنین می‌توانید با {{if .args}} ... {{else}} ... {{end}} میان دو حالت یکی را برگزینید.

نام‌های قابل استفاده

جایگزین می‌تواند از هر پارامتری که در params تعریف کرده‌اید استفاده کند. مقدار آن یا مقداری است که دکمه داده، یا default پارامتر.

نام تعریف‌نشده هنگام اجرا خطا می‌دهد

validate فقط نحو جایگزین را بررسی می‌کند، نه نام‌ها را. اگر run شامل {{.uri}} باشد اما پارامتری به نام uri وجود نداشته باشد، پیکربندی معتبر است ولی با لمس دکمه خطا در گفتگو گزارش می‌شود.

مقادیر به‌شکل متن ساده درج می‌شوند

هیچ مقداری خودکار نقل‌قول‌گذاری یا escape نمی‌شود. مقداری شامل فاصله یا نویسه‌های شِل همان‌گونه که نوشته شده بخشی از فرمان می‌شود؛ پس مقادیر ثابت روی دکمه‌ها را ترجیح دهید و برای کارهای مخرب confirm: true بیفزایید.

مرتبط