github.com/vmware/govmomi@v0.51.0/cli/vm/guest/rmdir.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 11 "github.com/vmware/govmomi/cli" 12 ) 13 14 type rmdir struct { 15 *GuestFlag 16 17 recursive bool 18 } 19 20 func init() { 21 cli.Register("guest.rmdir", &rmdir{}) 22 } 23 24 func (cmd *rmdir) Register(ctx context.Context, f *flag.FlagSet) { 25 cmd.GuestFlag, ctx = newGuestFlag(ctx) 26 cmd.GuestFlag.Register(ctx, f) 27 28 f.BoolVar(&cmd.recursive, "r", false, "Recursive removal") 29 } 30 31 func (cmd *rmdir) Process(ctx context.Context) error { 32 if err := cmd.GuestFlag.Process(ctx); err != nil { 33 return err 34 } 35 return nil 36 } 37 38 func (cmd *rmdir) Usage() string { 39 return "PATH" 40 } 41 42 func (cmd *rmdir) Description() string { 43 return `Remove directory PATH in VM. 44 45 Examples: 46 govc guest.rmdir -vm $name /tmp/empty-dir 47 govc guest.rmdir -vm $name -r /tmp/non-empty-dir` 48 } 49 50 func (cmd *rmdir) Run(ctx context.Context, f *flag.FlagSet) error { 51 m, err := cmd.FileManager() 52 if err != nil { 53 return err 54 } 55 56 return m.DeleteDirectory(ctx, cmd.Auth(), f.Arg(0), cmd.recursive) 57 }