mirror of
https://github.com/appleboy/drone-ssh.git
synced 2025-05-09 18:23:21 +08:00
Preservation of forwarded environment (#113)
* Tests for omitting unset variables * Preservation of forwarded environment
This commit is contained in:
parent
8bfc58f9d0
commit
60993a71e2
@ -75,8 +75,9 @@ func (p Plugin) exec(host string, wg *sync.WaitGroup, errChannel chan error) {
|
|||||||
env := []string{}
|
env := []string{}
|
||||||
for _, key := range p.Config.Envs {
|
for _, key := range p.Config.Envs {
|
||||||
key = strings.ToUpper(key)
|
key = strings.ToUpper(key)
|
||||||
val := os.Getenv(key)
|
if val, found := os.LookupEnv(key); found {
|
||||||
env = append(env, key+"="+escapeArg(val))
|
env = append(env, key+"="+escapeArg(val))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
p.Config.Script = append(env, p.Config.Script...)
|
p.Config.Script = append(env, p.Config.Script...)
|
||||||
|
@ -257,6 +257,33 @@ func TestSetENV(t *testing.T) {
|
|||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSetExistingENV(t *testing.T) {
|
||||||
|
os.Setenv("FOO", "Value for foo")
|
||||||
|
os.Setenv("BAR", "")
|
||||||
|
plugin := Plugin{
|
||||||
|
Config: Config{
|
||||||
|
Host: []string{"localhost"},
|
||||||
|
UserName: "drone-scp",
|
||||||
|
Port: 22,
|
||||||
|
KeyPath: "./tests/.ssh/id_rsa",
|
||||||
|
Secrets: []string{"FOO"},
|
||||||
|
Envs: []string{"foo", "bar", "baz"},
|
||||||
|
Debug: true,
|
||||||
|
Script: []string{"export FOO", "export BAR", "export BAZ", "env | grep -q '^FOO=Value for foo$'", "env | grep -q '^BAR=$'", "if env | grep -q BAZ; then false; else true; fi"},
|
||||||
|
CommandTimeout: 1,
|
||||||
|
Proxy: easyssh.DefaultConfig{
|
||||||
|
Server: "localhost",
|
||||||
|
User: "drone-scp",
|
||||||
|
Port: "22",
|
||||||
|
KeyPath: "./tests/.ssh/id_rsa",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
err := plugin.Exec()
|
||||||
|
assert.Nil(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
func TestSyncMode(t *testing.T) {
|
func TestSyncMode(t *testing.T) {
|
||||||
plugin := Plugin{
|
plugin := Plugin{
|
||||||
Config: Config{
|
Config: Config{
|
||||||
|
Loading…
Reference in New Issue
Block a user