50 lines
1.0 KiB
Go
50 lines
1.0 KiB
Go
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)
|
|
}
|
|
}
|
|
}
|