-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathadd.go
More file actions
31 lines (26 loc) · 733 Bytes
/
add.go
File metadata and controls
31 lines (26 loc) · 733 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package main
import (
"github.com/codegangsta/cli"
"github.com/mewbak/gopass"
keychain "github.com/okdas/go-keychain"
)
func RunAdd(c *cli.Context) error {
if !c.Args().Present() {
return cli.NewExitError("Environment variable not provided\n", 1)
}
name := c.Args().First()
bucket := c.String("bucket")
secret, err := gopass.GetPass("Enter secret:\n")
if err != nil {
return cli.NewExitError("Error getting secret: "+err.Error(), 1)
}
if len(secret) == 0 {
return cli.NewExitError("Secret can't be blank."+err.Error(), 1)
}
err = keychain.Add("evk", "evk_"+bucket+"_"+name, secret)
if err != nil {
return cli.NewExitError("Can't write to keychain."+err.Error(), 1)
}
println("Added", name)
return nil
}