go-Cobra PersistentFlagsとFlagsの違いは何ですか?
Aug 20 2020
go-CobraのPersistentFlagsとFlagsの違いは何か、そしてそれぞれをいつ使用すべきかを理解しようとしています。私はこれを読みましたが、理解できませんでした。
回答
3 torek Aug 20 2020 at 11:48
Cobraを使用する場合、トップレベルのコマンドを定義します。
prog
この最上位コマンドにはサブコマンドがあります。たとえば、私たちは、三つのサブコマンドがあるとしinit
、start
、と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コマンドに永続的なフラグを設定することもできます。この永続フラグは、すべてのサブコマンドで使用できるようになります。
サブサブコマンドを含むサブコマンドがある場合は、サブコマンドに永続フラグを設定して、そのフラグをすべてのサブサブコマンドに表示することができます。