argp - Parser de argumentos de linha de comando estilo GNU para Go
(github.com/tdewolff)- 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
-he--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 1sã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:
-vvvdefinev = 3 - Acúmulo de opções:
-v 1 -v 2definev = []int{1, 2} - Opções booleanas:
--varativa e--no-vardesativa - 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