2 pontos por xguru 2025-03-26 | 1 comentários | Compartilhar no WhatsApp
  • Parser de argumentos de linha de comando que segue o padrão GNU, como ./test -vo out.png --size 256 input.txt
  • Fornece mensagens de ajuda embutidas com -h e --help
  • Mapeia argumentos para campos de struct por meio de configuração com tags
  • Suporta campos de tipos compostos, como arrays, slices e structs
  • Suporta subcomandos aninhados

Regras de argumentos de linha de comando GNU

  • Itens que começam com hífen (-) são opções
  • Várias opções podem ser combinadas (-abc é o mesmo que -a -b -c)
  • Opções longas começam com dois hífens (--abc)
  • Nomes de opções podem conter apenas caracteres alfanuméricos
  • Valores de opções podem ser definidos com espaço, sinal de igual (=) ou valor anexado (-a1, -a=1, -a 1 são equivalentes)
  • Não há problema em misturar opções e valores que não são opções
  • As opções podem aparecer em qualquer ordem.
  • -- indica o fim das opções; depois disso, todos os argumentos são tratados como não opções
  • Um único - geralmente significa entrada ou saída padrão
  • Se a mesma opção for especificada várias vezes, o último valor será aplicado
  • Uma opção pode ter vários valores (-a 1 2 3 é tratado como [1,2,3])

Recursos adicionais

  • Contagem de opções: -vvv define v = 3
  • Acúmulo de opções: -v 1 -v 2 define v = []int{1, 2}
  • Opções booleanas: --var ativa e --no-var desativa
  • Opções podem ser tipos compostos, como structs, slices e maps
  • Opções podem obter valores de lista/dicionário de uma fonte (ex.: SQL)

1 comentários

 
haung921209 2025-03-26

Eu usava o cobra, mas em comparação o argp oferece várias opções para as flags haha