| @@ -0,0 +1,58 @@ | |||||
| package bucket | |||||
| import ( | |||||
| "fmt" | |||||
| "strconv" | |||||
| "github.com/spf13/cobra" | |||||
| cliapi "gitlink.org.cn/cloudream/jcs-pub/client/sdk/api/v1" | |||||
| clitypes "gitlink.org.cn/cloudream/jcs-pub/client/types" | |||||
| "gitlink.org.cn/cloudream/jcs-pub/jcsctl/cmd" | |||||
| ) | |||||
| func init() { | |||||
| var opt deleteOpt | |||||
| cmd := cobra.Command{ | |||||
| Use: "delete <bucket_name>", | |||||
| Aliases: []string{"del"}, | |||||
| Args: cobra.ExactArgs(1), | |||||
| RunE: func(c *cobra.Command, args []string) error { | |||||
| ctx := cmd.GetCmdCtx(c) | |||||
| return delete(c, ctx, opt, args) | |||||
| }, | |||||
| } | |||||
| cmd.Flags().BoolVar(&opt.UseID, "id", false, "treat first argument as bucket ID") | |||||
| BucketCmd.AddCommand(&cmd) | |||||
| } | |||||
| type deleteOpt struct { | |||||
| UseID bool | |||||
| } | |||||
| func delete(c *cobra.Command, ctx *cmd.CommandContext, opt deleteOpt, args []string) error { | |||||
| var bktID clitypes.BucketID | |||||
| if opt.UseID { | |||||
| id, err := strconv.ParseInt(args[0], 10, 64) | |||||
| if err != nil { | |||||
| return fmt.Errorf("invalid bucket ID: %v", args[0]) | |||||
| } | |||||
| bktID = clitypes.BucketID(id) | |||||
| } else { | |||||
| bktName := args[0] | |||||
| bkt, err := ctx.Client.Bucket().GetByName(cliapi.BucketGetByName{ | |||||
| Name: args[0], | |||||
| }) | |||||
| if err != nil { | |||||
| return fmt.Errorf("get bucket by name %v: %v", bktName, err) | |||||
| } | |||||
| bktID = bkt.Bucket.BucketID | |||||
| } | |||||
| if err := ctx.Client.Bucket().Delete(cliapi.BucketDelete{ | |||||
| BucketID: bktID, | |||||
| }); err != nil { | |||||
| return fmt.Errorf("delete bucket %v: %v", bktID, err) | |||||
| } | |||||
| return nil | |||||
| } | |||||
| @@ -0,0 +1,36 @@ | |||||
| package bucket | |||||
| import ( | |||||
| "fmt" | |||||
| "github.com/spf13/cobra" | |||||
| cliapi "gitlink.org.cn/cloudream/jcs-pub/client/sdk/api/v1" | |||||
| "gitlink.org.cn/cloudream/jcs-pub/jcsctl/cmd" | |||||
| ) | |||||
| func init() { | |||||
| var opt newOpt | |||||
| cmd := cobra.Command{ | |||||
| Use: "new <bucket_name>", | |||||
| Args: cobra.ExactArgs(1), | |||||
| RunE: func(c *cobra.Command, args []string) error { | |||||
| ctx := cmd.GetCmdCtx(c) | |||||
| return new(c, ctx, opt, args) | |||||
| }, | |||||
| } | |||||
| BucketCmd.AddCommand(&cmd) | |||||
| } | |||||
| type newOpt struct { | |||||
| } | |||||
| func new(c *cobra.Command, ctx *cmd.CommandContext, opt newOpt, args []string) error { | |||||
| resp, err := ctx.Client.Bucket().Create(cliapi.BucketCreate{ | |||||
| Name: args[0], | |||||
| }) | |||||
| if err != nil { | |||||
| return fmt.Errorf("create bucket %v: %v", args[0], err) | |||||
| } | |||||
| printOneBucket(resp.Bucket) | |||||
| return nil | |||||
| } | |||||
| @@ -0,0 +1,15 @@ | |||||
| package bucket | |||||
| import ( | |||||
| "fmt" | |||||
| "github.com/jedib0t/go-pretty/v6/table" | |||||
| clitypes "gitlink.org.cn/cloudream/jcs-pub/client/types" | |||||
| ) | |||||
| func printOneBucket(bkt clitypes.Bucket) { | |||||
| tb := table.NewWriter() | |||||
| tb.AppendHeader(table.Row{"ID", "Name", "CreateTime"}) | |||||
| tb.AppendRow(table.Row{bkt.BucketID, bkt.Name, bkt.CreateTime}) | |||||
| fmt.Println(tb.Render()) | |||||
| } | |||||
| @@ -0,0 +1,64 @@ | |||||
| package pkg | |||||
| import ( | |||||
| "fmt" | |||||
| "strconv" | |||||
| "strings" | |||||
| "github.com/spf13/cobra" | |||||
| cliapi "gitlink.org.cn/cloudream/jcs-pub/client/sdk/api/v1" | |||||
| clitypes "gitlink.org.cn/cloudream/jcs-pub/client/types" | |||||
| "gitlink.org.cn/cloudream/jcs-pub/jcsctl/cmd" | |||||
| ) | |||||
| func init() { | |||||
| var opt deleteOpt | |||||
| cmd := cobra.Command{ | |||||
| Use: "delete <bucket_name>/<package_name>", | |||||
| Aliases: []string{"del"}, | |||||
| Args: cobra.ExactArgs(1), | |||||
| RunE: func(c *cobra.Command, args []string) error { | |||||
| ctx := cmd.GetCmdCtx(c) | |||||
| return delete(c, ctx, opt, args) | |||||
| }, | |||||
| } | |||||
| cmd.Flags().BoolVar(&opt.UseID, "id", false, "treat first argument as package ID") | |||||
| PackageCmd.AddCommand(&cmd) | |||||
| } | |||||
| type deleteOpt struct { | |||||
| UseID bool | |||||
| } | |||||
| func delete(c *cobra.Command, ctx *cmd.CommandContext, opt deleteOpt, args []string) error { | |||||
| var pkgID clitypes.PackageID | |||||
| if opt.UseID { | |||||
| id, err := strconv.ParseInt(args[0], 10, 64) | |||||
| if err != nil { | |||||
| return fmt.Errorf("invalid package ID: %v", args[0]) | |||||
| } | |||||
| pkgID = clitypes.PackageID(id) | |||||
| } else { | |||||
| comps := strings.Split(args[0], "/") | |||||
| if len(comps) != 2 { | |||||
| return fmt.Errorf("invalid package name: %v", args[0]) | |||||
| } | |||||
| getPkg, err := ctx.Client.Package().GetByFullName(cliapi.PackageGetByFullName{ | |||||
| BucketName: comps[0], | |||||
| PackageName: comps[1], | |||||
| }) | |||||
| if err != nil { | |||||
| return fmt.Errorf("get package by name %v: %v", args[0], err) | |||||
| } | |||||
| pkgID = getPkg.Package.PackageID | |||||
| } | |||||
| if err := ctx.Client.Package().Delete(cliapi.PackageDelete{ | |||||
| PackageID: pkgID, | |||||
| }); err != nil { | |||||
| return fmt.Errorf("delete package %v: %v", pkgID, err) | |||||
| } | |||||
| return nil | |||||
| } | |||||