Quelle est la différence entre go-Cobra PersistentFlags et Flags ?

Aug 20 2020

J'essaie de comprendre quelle est la différence entre PersistentFlags et Flags dans go-Cobra, et quand devrions-nous utiliser chacun d'eux. J'ai lu ceci mais je n'ai pas compris.

Réponses

3 torek Aug 20 2020 at 11:48

Lorsque vous utilisez Cobra, vous définissez une commande de niveau supérieur :

prog

Cette commande de niveau supérieur comporte des sous-commandes. Par exemple, supposons que nous ayons trois sous-commandes, init, startet stop.

prog init [-i]         # initialize, but don't start anything: -i means ignore
prog start [-f] [-q]   # after init, start: -f=fast, -q=quiet 
prog stop [-f]         # stop: -f=force

Le -idrapeau est uniquement pour init, nous ajoutons donc un -idrapeau à la sous- initcommande.

Le -qdrapeau est uniquement pour start, nous ajoutons donc un -qdrapeau à la sous- startcommande, et ainsi de suite.

Nous aimerions maintenant ajouter un mode débogage à chaque commande. Nous pourrions entrer dans chaque commande et ajouter un --debugindicateur ... mais nous pouvons également simplement définir un indicateur persistant pour la commande racine. Cet indicateur persistant sera désormais disponible dans chaque sous-commande.

Si vous avez une sous-commande qui a des sous-sous-commandes, vous pouvez définir un indicateur persistant dans la sous-commande pour faire apparaître cet indicateur dans chaque sous-sous-commande, et ainsi de suite.