github.com/loafoe/cli@v7.1.0+incompatible/command/v7/feature_flags_command.go (about) 1 package v7 2 3 import ( 4 "code.cloudfoundry.org/cli/actor/v7action" 5 "code.cloudfoundry.org/cli/command/v7/shared" 6 "code.cloudfoundry.org/cli/util/ui" 7 ) 8 9 type FeatureFlagsCommand struct { 10 BaseCommand 11 12 usage interface{} `usage:"CF_NAME feature-flags"` 13 relatedCommands interface{} `related_commands:"disable-feature-flag, enable-feature-flag, feature-flag"` 14 } 15 16 func (cmd FeatureFlagsCommand) Execute(args []string) error { 17 err := cmd.SharedActor.CheckTarget(false, false) 18 if err != nil { 19 return err 20 } 21 22 user, err := cmd.Config.CurrentUser() 23 if err != nil { 24 return err 25 } 26 27 cmd.UI.DisplayTextWithFlavor("Getting feature flags as {{.Username}}...", map[string]interface{}{ 28 "Username": user.Name, 29 }) 30 cmd.UI.DisplayNewline() 31 32 flags, warnings, err := cmd.Actor.GetFeatureFlags() 33 cmd.UI.DisplayWarnings(warnings) 34 if err != nil { 35 return err 36 } 37 38 cmd.displayTable(flags) 39 40 return nil 41 } 42 43 func (cmd FeatureFlagsCommand) displayTable(featureFlags []v7action.FeatureFlag) { 44 if len(featureFlags) > 0 { 45 var keyValueTable = [][]string{ 46 {"name", "state"}, 47 } 48 for _, flag := range featureFlags { 49 state := shared.FlagBoolToString(flag.Enabled) 50 keyValueTable = append(keyValueTable, []string{flag.Name, state}) 51 } 52 53 cmd.UI.DisplayTableWithHeader("", keyValueTable, ui.DefaultTableSpacePadding) 54 } 55 }