From 2daab5e1aff05050040c5c0cc86e94bf85c71af7 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Mon, 24 Jul 2017 13:10:11 +0200 Subject: [PATCH] Expand DRONE* variables before uploading the script --- plugin.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugin.go b/plugin.go index d48db66..afeeb79 100644 --- a/plugin.go +++ b/plugin.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "os" "strconv" "strings" "sync" @@ -86,6 +87,17 @@ func (p Plugin) Exec() error { }, } + // expand DRONE env variables in script (like DRONE_DEPLOY_TO) + for index, _ := range p.Config.Script { + parts := strings.Split(p.Config.Script[index], " ") + for i, _ := range parts { + if strings.Contains(parts[i], "DRONE") { + parts[i] = os.ExpandEnv(parts[i]) + } + } + p.Config.Script[index] = strings.Join(parts, " ") + } + p.log(host, "commands: ", strings.Join(p.Config.Script, "\n")) stdoutChan, stderrChan, doneChan, errChan, err := ssh.Stream(strings.Join(p.Config.Script, "\n"), p.Config.CommandTimeout) if err != nil {