github.com/vmware/govmomi@v0.51.0/cli/vm/guest/getenv.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 guest 6 7 import ( 8 "context" 9 "flag" 10 "fmt" 11 12 "github.com/vmware/govmomi/cli" 13 ) 14 15 type getenv struct { 16 *GuestFlag 17 } 18 19 func init() { 20 cli.Register("guest.getenv", &getenv{}) 21 } 22 23 func (cmd *getenv) Register(ctx context.Context, f *flag.FlagSet) { 24 cmd.GuestFlag, ctx = newGuestProcessFlag(ctx) 25 cmd.GuestFlag.Register(ctx, f) 26 } 27 28 func (cmd *getenv) Process(ctx context.Context) error { 29 if err := cmd.GuestFlag.Process(ctx); err != nil { 30 return err 31 } 32 return nil 33 } 34 35 func (cmd *getenv) Usage() string { 36 return "[NAME]..." 37 } 38 39 func (cmd *getenv) Description() string { 40 return `Read NAME environment variables from VM. 41 42 Examples: 43 govc guest.getenv -vm $name 44 govc guest.getenv -vm $name HOME` 45 } 46 47 func (cmd *getenv) Run(ctx context.Context, f *flag.FlagSet) error { 48 m, err := cmd.ProcessManager() 49 if err != nil { 50 return err 51 } 52 53 vars, err := m.ReadEnvironmentVariable(ctx, cmd.Auth(), f.Args()) 54 if err != nil { 55 return err 56 } 57 58 for _, v := range vars { 59 fmt.Printf("%s\n", v) 60 } 61 62 return nil 63 }