github.com/saucelabs/saucectl@v0.175.1/internal/cmd/storage/delete.go (about) 1 package storage 2 3 import ( 4 "errors" 5 "fmt" 6 7 cmds "github.com/saucelabs/saucectl/internal/cmd" 8 "github.com/saucelabs/saucectl/internal/segment" 9 "github.com/saucelabs/saucectl/internal/usage" 10 "github.com/spf13/cobra" 11 "golang.org/x/text/cases" 12 "golang.org/x/text/language" 13 ) 14 15 func DeleteCommand() *cobra.Command { 16 cmd := &cobra.Command{ 17 Use: "delete <fileID>", 18 Short: "Delete a file from Sauce Storage.", 19 SilenceUsage: true, 20 Args: func(cmd *cobra.Command, args []string) error { 21 if len(args) == 0 || args[0] == "" { 22 return errors.New("no ID specified") 23 } 24 25 return nil 26 }, 27 PreRun: func(cmd *cobra.Command, args []string) { 28 tracker := segment.DefaultTracker 29 30 go func() { 31 tracker.Collect( 32 cases.Title(language.English).String(cmds.FullName(cmd)), 33 usage.Properties{}.SetFlags(cmd.Flags()), 34 ) 35 _ = tracker.Close() 36 }() 37 }, 38 RunE: func(cmd *cobra.Command, args []string) error { 39 if err := appsClient.Delete(args[0]); err != nil { 40 return fmt.Errorf("failed to delete file: %v", err) 41 } 42 43 fmt.Println("File deleted successfully!") 44 45 return nil 46 }, 47 } 48 49 return cmd 50 }