github.com/vmware/govmomi@v0.51.0/cli/vm/guest/chmod.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 "strconv" 11 12 "github.com/vmware/govmomi/cli" 13 "github.com/vmware/govmomi/vim25/types" 14 ) 15 16 type chmod struct { 17 *GuestFlag 18 } 19 20 func init() { 21 cli.Register("guest.chmod", &chmod{}) 22 } 23 24 func (cmd *chmod) Register(ctx context.Context, f *flag.FlagSet) { 25 cmd.GuestFlag, ctx = newGuestFlag(ctx) 26 cmd.GuestFlag.Register(ctx, f) 27 } 28 29 func (cmd *chmod) Process(ctx context.Context) error { 30 if err := cmd.GuestFlag.Process(ctx); err != nil { 31 return err 32 } 33 return nil 34 } 35 36 func (cmd *chmod) Usage() string { 37 return "MODE FILE" 38 } 39 40 func (cmd *chmod) Description() string { 41 return `Change FILE MODE on VM. 42 43 Examples: 44 govc guest.chmod -vm $name 0644 /var/log/foo.log` 45 } 46 47 func (cmd *chmod) Run(ctx context.Context, f *flag.FlagSet) error { 48 if f.NArg() != 2 { 49 return flag.ErrHelp 50 } 51 52 m, err := cmd.FileManager() 53 if err != nil { 54 return err 55 } 56 57 var attr types.GuestPosixFileAttributes 58 59 attr.Permissions, err = strconv.ParseInt(f.Arg(0), 0, 64) 60 if err != nil { 61 return err 62 } 63 64 return m.ChangeFileAttributes(ctx, cmd.Auth(), f.Arg(1), &attr) 65 }