1
0
mirror of https://github.com/drone/drone-cli.git synced 2024-09-23 04:21:09 +02:00
drone-cli/drone/secret.go
2016-03-31 17:55:48 -07:00

65 lines
1.2 KiB
Go

package main
import (
"fmt"
"strings"
"github.com/codegangsta/cli"
"github.com/drone/drone-go/drone"
)
var SecretCmd = cli.Command{
Name: "secret",
Usage: "manage secrets",
Subcommands: []cli.Command{
// Secret Add
{
Name: "add",
Usage: "add a secret",
Action: func(c *cli.Context) {
handle(c, SecretAddCmd)
},
},
// Secret Delete
{
Name: "rm",
Usage: "remove a secret",
Action: func(c *cli.Context) {
handle(c, SecretDelCmd)
},
},
},
}
func SecretAddCmd(c *cli.Context, client drone.Client) error {
repo := c.Args().First()
owner, name, err := parseRepo(repo)
if err != nil {
return err
}
in := c.Args().Get(1)
kv := strings.SplitN(in, "=", 2)
if len(kv) != 2 {
return fmt.Errorf("Please define the secret in KEY=VALUE format")
}
secret := &drone.Secret{}
secret.Name = kv[0]
secret.Value = kv[1]
secret.Image = []string{}
secret.Event = []string{}
return client.SecretPost(owner, name, secret)
}
func SecretDelCmd(c *cli.Context, client drone.Client) error {
repo := c.Args().First()
owner, name, err := parseRepo(repo)
if err != nil {
return err
}
secret := c.Args().Get(1)
return client.SecretDel(owner, name, secret)
}