3 回答

TA貢獻1853條經(jīng)驗 獲得超9個贊
您應(yīng)該像使用func GetCommandFlags(cmd *cobra.Command, opts *ListOptions)和調(diào)用 func 一樣cmd = GetCommandFlags(cmd, &opts)。
您可以打印opts.IgnoreLatest并opts.IgnoreOld查看更改后的值。
對我來說效果很好。希望它也對你有用。
func NewCommand(ctx context.Context) *cobra.Command {
var opts ListOptions
cmd := &cobra.Command{
Use: "list",
Short: "List",
RunE: func(cmd *cobra.Command, args []string) error {
// fmt.Println(args) // []
fmt.Println(opts.IgnoreLatest, ", ", opts.IgnoreOld)
opts.refs = args
return List(ctx, gh, opts, os.Stdout)
},
}
cmd = GetCommandFlags(cmd, &opts)
return cmd
}
// GetListCommandFlags for list
func GetCommandFlags(cmd *cobra.Command, opts *ListOptions) *cobra.Command {
flags := cmd.Flags()
flags.BoolVar(&opts.IgnoreLatest, "ignore-latest", false, "Do not display latest")
flags.BoolVar(&opts.IgnoreOld, "ignore-old", false, "Do not display old data")
return cmd
}

TA貢獻1866條經(jīng)驗 獲得超5個贊
您正在opts
按GetCommandFlags
值傳遞。您應(yīng)該向它傳遞一個指針,以便為標志注冊的地址使用opts
調(diào)用函數(shù)中聲明的地址。
func GetCommandFlags(cmd *cobra.Command, opts *ListOptions) *cobra.Command { ... }
- 3 回答
- 0 關(guān)注
- 241 瀏覽
添加回答
舉報