func collectFlags(v *viper.Viper, cmd *cobra.Command) { v.BindPFlags(cmd.PersistentFlags()) v.BindPFlags(cmd.Flags()) for _, cmd := range cmd.Commands() { collectFlags(v, cmd) } }