package bucket import ( "fmt" "github.com/jedib0t/go-pretty/v6/table" "github.com/spf13/cobra" "gitlink.org.cn/cloudream/jcs-pub/client/sdk/api/v1" "gitlink.org.cn/cloudream/jcs-pub/jcsctl/cmd" ) func init() { var opt lsOpt cmd := cobra.Command{ Use: "ls", Run: func(c *cobra.Command, args []string) { ctx := cmd.GetCmdCtx(c) ls(c, ctx, opt) }, } cmd.Flags().BoolVarP(&opt.Long, "", "l", false, "listing in long format") BucketCmd.AddCommand(&cmd) } type lsOpt struct { Long bool } func ls(c *cobra.Command, ctx *cmd.CommandContext, opt lsOpt) { resp, err := ctx.Client.Bucket().ListAll(api.BucketListAll{}) if err != nil { cmd.ErrorExitln(err.Error()) } if opt.Long { fmt.Printf("total: %d\n", len(resp.Buckets)) tb := table.NewWriter() tb.AppendHeader(table.Row{"Bucket ID", "Name", "Create Time"}) for _, b := range resp.Buckets { tb.AppendRow(table.Row{b.BucketID, b.Name, b.CreateTime}) } fmt.Println(tb.Render()) } else { for _, b := range resp.Buckets { fmt.Println(b.Name) } } }