edit-yaml

Nesta seção, você encontra a referência de um Hook Declarativo do tipo edit-yaml.

O Hook Declarativo edit-yaml define as alterações que serão feitas em arquivos YAML existentes.

Ações Disponíveis

  • path: Define o caminho do arquivo que será editado. O caminho pode ser composto por expressões Jinja.

    path: package.yaml
    

  • trigger: Campo para definir gatilhos que informam o momento em que a edição de arquivos deve ocorrer.
    • before-input: Executa o Hook Declarativo antes de receber os parâmetros de entrada da pessoa usuária.
      trigger: before-input
      
    • before-render: Executa o Hook Declarativo antes do Template gerar arquivos no projeto.
      trigger: before-render
      
    • after-render: Executa o Hook Declarativo após o Template gerar arquivos no projeto.
      trigger: after-render
      

  • enconding: Define o tipo de encoding a ser gravado no arquivo, e aceita os formatos [ascii, utf-8, utf-16]. O valor padrão é o utf-8.
encoding: utf-8

  • indent: efine o(s) caracterer(s) ou número de espaços para a indentação do documento gerado. O valor padrão de espaços é 2.
indent: "\t"

  • changes: É uma lista de ações de edição que serão executadas na ordem em que aparecem. E o seu bloco tem como obrigatório o parâmetro yamlpath.

    • yamlpath: Permite inserir a linguagem de busca do JSON no arquivo YAML. O seu uso é Obrigatório.
    changes:
      - yamlpath: "$.packages.version"
        ...
    

    Se necessário, consulte o Suporte do yamlpath (jsonpath)

    • update: Altera ou acrescenta um item dentro de um resultado de um yamlpath. Os campos disponíveis são value ou snippet.

      • value Recebe o valor para ser adicionado ao YAML.
        update:
          value: "qa"
      
      
      • snippet Recebe o snippet para ser adicionado ao YAML.
      append:
          snippet: snippets/fragment.yaml
      
    • remove: Remove um elemento de dicionário. O campo disponível é o name.

      • name: Recebe o nome do elemento a ser removido do dicionário YAML.
      - yamlpath: "$.scripts"
        remove:
          - name: prepare
      
    • clear: Remove todo o conteúdo do nó YAML, dado o contexto do yamlpath. Os valores aceitos são true ou false.

      - yamlpath: "$.devDependencies"
        clear: true
    

Exemplo de um Hook Declarativo edit-yaml com todas as opções disponíveis em changes

hooks:
  - type: edit-yaml
    trigger: after-render
    path: package.yaml
    indent: "\t"
    encoding: utf-8
    changes:
      - yamlpath: "$.scripts"
        update:
          value: |
            {
            "test": "ola 123",
            "ola": "como vai você"
            }            
      - yamlpath: "$"
        remove:
          - name: private
          - name: devDependencies
      - yamlpath: "$.log"
        clear: true

Leia também