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 {