Add --secrets-file option to exec command

This commit is contained in:
Fabio Rapposelli 2016-06-10 11:06:39 +02:00
parent 30d55a224e
commit f9f90af793
No known key found for this signature in database
GPG key ID: 3BF303AC750875CE

View file

@ -15,6 +15,7 @@ import (
"github.com/drone/drone/queue"
"github.com/codegangsta/cli"
"github.com/joho/godotenv"
)
var execCmd = cli.Command{
@ -41,6 +42,11 @@ var execCmd = cli.Command{
Usage: "build secrets in KEY=VALUE format",
EnvVar: "DRONE_SECRET",
},
cli.StringFlag{
Name: "secrets-file",
Usage: "build secrets file in KEY=VALUE format",
EnvVar: "DRONE_SECRETS_FILE",
},
cli.StringSliceFlag{
Name: "matrix",
Usage: "build matrix in KEY=VALUE format",
@ -401,7 +407,27 @@ func getMatrix(c *cli.Context) map[string]string {
// helper function to retrieve secret variables.
func getSecrets(c *cli.Context) []*model.Secret {
var secrets []*model.Secret
if c.String("secrets-file") != "" {
envs, _ := godotenv.Read(c.String("secrets-file"))
for k, v := range envs {
secret := &model.Secret{
Name: k,
Value: v,
Events: []string{
model.EventPull,
model.EventPush,
model.EventTag,
model.EventDeploy,
},
Images: []string{"*"},
}
secrets = append(secrets, secret)
}
}
for _, s := range c.StringSlice("secret") {
parts := strings.SplitN(s, "=", 2)
if len(parts) != 2 {