|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package pkg
-
- import (
- "fmt"
- "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 newOpt
- cmd := cobra.Command{
- Use: "new <bucket_name>/<package_name>",
- Args: cobra.ExactArgs(1),
- RunE: func(c *cobra.Command, args []string) error {
- ctx := cmd.GetCmdCtx(c)
- return new(c, ctx, opt, args)
- },
- }
- cmd.Flags().Int64Var(&opt.BucketID, "bid", 0, "set bucket id, if set, you should not set bucket name")
- PackageCmd.AddCommand(&cmd)
- }
-
- type newOpt struct {
- BucketID int64
- }
-
- func new(c *cobra.Command, ctx *cmd.CommandContext, opt newOpt, args []string) error {
- if opt.BucketID != 0 {
- resp, err := ctx.Client.Package().Create(cliapi.PackageCreate{
- BucketID: clitypes.BucketID(opt.BucketID),
- Name: args[0],
- })
- if err != nil {
- return err
- }
-
- printOnePackage(resp.Package)
- return nil
- }
-
- comps := strings.Split(args[0], "/")
- if len(comps) != 2 {
- return fmt.Errorf("invalid package name")
- }
-
- bktResp, err := ctx.Client.Bucket().GetByName(cliapi.BucketGetByName{
- Name: comps[0],
- })
- if err != nil {
- return fmt.Errorf("get bucket by name %v: %v", comps[0], err)
- }
-
- resp, err := ctx.Client.Package().Create(cliapi.PackageCreate{
- BucketID: bktResp.Bucket.BucketID,
- Name: comps[1],
- })
- if err != nil {
- return fmt.Errorf("create package %v: %v", args[0], err)
- }
- printOnePackage(resp.Package)
- return nil
- }
|