go-Cobra PersistentFlagsとFlagsの違いは何ですか?

Aug 20 2020

go-CobraのPersistentFlagsとFlagsの違いは何か、そしてそれぞれをいつ使用すべきかを理解しようとしています。私はこれを読みましたが、理解できませんでした。

回答

3 torek Aug 20 2020 at 11:48

Cobraを使用する場合、トップレベルのコマンドを定義します。

prog

この最上位コマンドにはサブコマンドがあります。たとえば、私たちは、三つのサブコマンドがあるとしinitstart、と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

-iフラグは専用ですinitので、我々は追加-iにフラグをinitサブコマンド。

-qフラグは専用ですstartので、我々は追加-qにフラグをstartサブコマンド、そしてそうで。

次に、すべてのコマンドにデバッグモードを追加します。各コマンドに移動して--debugフラグを追加することもできますが、rootコマンドに永続的なフラグを設定することもできます。この永続フラグは、すべてのサブコマンドで使用できるようになります。

サブサブコマンドを含むサブコマンドがある場合は、サブコマンドに永続フラグを設定して、そのフラグをすべてのサブサブコマンドに表示することができます。