Перейти к содержанию

Заполнители

Поле 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: Log file path

Кнопка с path: "/var/log/app.log" запускается tail -n 200 /var/log/app.log.

Дополнительные детали

Пустое значение делает {{if .name}} ложным, поэтому весь блок исчезает. Это это то, как вы добавляете флаг только тогда, когда он необходим.

Создать необязательную деталь с помощью заполнителя

functions/tail-log.yaml
name: tail-log
run: "tail -n 200 {{.path}}{{if .args}} | grep -- {{.args}}{{end}}"
params:
  - name: path
    required: true
    description: Log file path
  - name: args
    description: Optional text to filter for

Две кнопки с его использованием, одна с фильтром и одна без:

Подача значений с помощью кнопки

App log buttons
- 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, конфигурация проверяется нормально и кнопка сообщает об ошибке в чате при нажатии.

Значения вставляются в виде обычного текста

Для вас ничего не цитируется и не экранируется. Значение с пробелами или оболочкой символы становятся частью команды в том виде, в каком они написаны, поэтому отдавайте предпочтение фиксированным значениям кнопки и добавьте confirm: true в что-нибудь разрушительное.

Похожие