2017-10-11 3 views
3

En tant qu'auteur de microservices, j'apprécie la puissance du drapeau pacakge de la bibliothèque standard, fournissant un moyen léger de documenter les drapeaux de la ligne de commande. Toutefois, l'option intégrée -help semble présenter la documentation uniquement pour les indicateurs eux-mêmes, tandis que le reste des arguments de ligne de commande est souvent idiosyncrasique, nécessitant également la documentation. Quel est un bon moyen de documenter le reste des arguments de la CLI, comme une application Go qui accepte certains indicateurs, puis traite le reste des arguments comme des chemins de fichier?Comment documenter le reste de argv dans les drapeaux golang?

Répondre

6

Mon approche préférée consiste simplement à définir flag.Usage sur une fonction qui imprime la documentation supplémentaire.

Par exemple:

flag.Usage = func() { 
    fmt.Fprintf(os.Stderr, "usage: %s [flags] <paths...>\n", os.Args[0]) 
    flag.PrintDefaults() 
    fmt.Fprintf(os.Stderr, "Argument documention goes here\n") 
}