- 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
Eu usava o cobra, mas em comparação o argp oferece várias opções para as flags haha