github.com/vmware/govmomi@v0.51.0/cli/license/ls.go (about) 1 // © Broadcom. All Rights Reserved. 2 // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. 3 // SPDX-License-Identifier: Apache-2.0 4 5 package license 6 7 import ( 8 "context" 9 "flag" 10 11 "github.com/vmware/govmomi/cli" 12 "github.com/vmware/govmomi/cli/flags" 13 "github.com/vmware/govmomi/license" 14 ) 15 16 var featureUsage = "List licenses with given feature" 17 18 type ls struct { 19 *flags.ClientFlag 20 *flags.OutputFlag 21 22 feature string 23 } 24 25 func init() { 26 cli.Register("license.ls", &ls{}) 27 } 28 29 func (cmd *ls) Register(ctx context.Context, f *flag.FlagSet) { 30 cmd.ClientFlag, ctx = flags.NewClientFlag(ctx) 31 cmd.ClientFlag.Register(ctx, f) 32 33 cmd.OutputFlag, ctx = flags.NewOutputFlag(ctx) 34 cmd.OutputFlag.Register(ctx, f) 35 36 f.StringVar(&cmd.feature, "feature", "", featureUsage) 37 } 38 39 func (cmd *ls) Process(ctx context.Context) error { 40 if err := cmd.ClientFlag.Process(ctx); err != nil { 41 return err 42 } 43 if err := cmd.OutputFlag.Process(ctx); err != nil { 44 return err 45 } 46 return nil 47 } 48 49 func (cmd *ls) Run(ctx context.Context, f *flag.FlagSet) error { 50 client, err := cmd.Client() 51 if err != nil { 52 return err 53 } 54 55 m := license.NewManager(client) 56 result, err := m.List(ctx) 57 if err != nil { 58 return err 59 } 60 61 if cmd.feature != "" { 62 result = result.WithFeature(cmd.feature) 63 } 64 65 return cmd.WriteResult(licenseOutput(result)) 66 }