Pular para o conteúdo principal
Version: v4.5.0

Inputs

Os arquivos de configuração que possuem o campo inputs são:

Esses inputs coletam informações relevantes para o escopo do projeto, Template, Plugin ou Task, dessa forma, os inputs são interpretados pelo STK CLI durante a execução dos comandos para pedir essas informações para os usuários.

info

Os inputs são opcionais. Cada arquivo .yaml pode ter nenhum ou vários inputs.

Tipos de input

Os tipos de input são definidos no campo type, confira quais são:

TiposValor
textString.
boolBoolean.
intInteger.
passwordO valor na CLI fica oculto no formato: ****.
multiselectLista os valores, permitindo escolher 1 ou mais valores (string).

Confira os inputs em um arquivo template.yaml:

name: my-template
description: Describe your template explaining its purpose
types:
- app-template
inputs:
- label: Input Example
type: text
name: example
default: any text
required: true
help: "Inform any text (e.g: My first text input)"

Campos Obrigatórios do input

  • name: Nome do input (será manipulado depois).
  • label: Texto que aparecerá no terminal pedindo o input para o usuário.
  • type:
    • text (string).
    • bool (boolean).
    • int (integer).
    • password (O valor na CLI fica oculto no formato: ****).
    • multiselect (lista os valores, permitindo escolher 1 ou mais valores) (string).

Exemplos de inputs com campos obrigatórios

Input do tipo texto

- label: Type your name
name: name
type: text

Input do tipo multiselect

inputs:
- label: Choose one or more days
name: days
type: multiselect
items:
- Monday
- Tuesday
- Wednesday
- Thursday
- Friday

Campos Opcionais do input

  • help: Este parâmetro adiciona um texto de apoio visível no terminal para ser exibido pela flag --help, com o objetivo de orientar o usuário a preencher o input. O texto não irá aparecer ao lado do campo de preenchimento do input como uma mensagem de apoio, somente quando o usuário utilizar qualquer comando com a flag --help ao lado. Por exemplo: stk-legacy create app --template <stack-name>/<plugin-name> --help
- label: Type your name
name: name
type: text
help: "Inform your firstname (e.g: John)"
  • default: Valor padrão associado ao input caso nenhum valor for informado.
- label: Type your name
name: name
type: text
default: John
  • required: Booleano que indica se um valor é opcional ou não, o valor será false caso nenhum valor for informado.
- label: Type your name
name: name
type: text
required: true
  • items: Lista de valores possíveis para o input (usado com type text (select) ou type multiselect).
- label: Type your name
name: name
type: text
items:
- John
- Bill
info

Não existe o tipo select para inputs. Se você precisa dessa opção, utilize campos text e items. Se você tem items para adicionar, escolha apenas uma opção.

  • pattern: Configura uma validação do campo informado no input.
- label: Type your name
name: name
type: text
pattern: "[A-Za-z]"
  • condition: Após receber um valor no input, é determinada uma condição para que um segundo input seja exibido para a pessoa usuária caso a condição for atendida. Se a condição não for atendida, nada acontecerá após o input com o condition.

    • variable: Nome da variável que será usada para avaliar a condição.
    • operator: Operador usado para avaliar a condição. Os valores de operadores válidos são: ==, !=, >, >=, <, <=, containsAny, containsAll, containsOnly, notContainsAny e notContainsAll.
    caution

    Você deve usar aspas duplas para os seguintes operadores: "==", "!=", ">", ">=", "<", "<=".

    Clique para ver mais detalhes dos operadores:
    OperadorDescrição
    ==Valida se os valores são iguais.
    !=Valida se os valores são diferentes.
    >Valida se a variável é maior ao valor.
    <Valida se a variável é menor ao valor.
    >=Valida se a variável é maior ou igual ao valor.
    <=Valida se a variável é menor ou igual ao valor.
    containsAnyValida se a variável do tipo lista contém qualquer um dos valores contidos em value.
    containsAllValida se a variável do tipo lista contém todos os valores valores contidos em value.
    containsOnlyValida se a variável do tipo lista contém todos os valores valores contidos em value e não contém outros elementos.
    • value: Valor usado para a avaliação.
info

O value do condition deve ser do mesmo tipo do que o input referenciado.

Confira o exemplo abaixo de uso de condition em um input. Neste exemplo o usuário responde qual linguagem deseja usar dentre as opções de Java e Kotlin, e dependendo da linguagem escolhida, vê as versões disponíveis.

inputs:
- label: Qual linguagem deseja usar?
type: text
name: language
items:
- Java
- Kotlin
- label: Qual versão do Java deseja usar?
type: text
name: java_version
items:
- "11"
- "17"
condition:
variable: language
operator: "=="
value: Java
- label: Qual versão do Kotlin deseja usar?
type: text
name: kotlin_version
items:
- 1.6
- 1.7
condition:
variable: language
operator: "=="
value: Kotlin

No exemplo exibido a condition determina a lista que será exibida, dependenendo do valor do input language. Caso o valor seja igual a Java, a lista de versões de Java é exibida, caso seja igual a Kotlin, a lista de versões de Kotlin é exibida.

info

Quando um input contém uma condition e recebe um valor de variável inexistente, nenhum outro input relacionado aquela condition será exibido na sequência.

Próximos passos

Esta página foi útil?