Skip to content

Commit 01688cb

Browse files
committed
Merge branch 'ubuntuegor-master'
2 parents f5820da + 9e6b559 commit 01688cb

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

internal/cli/cli.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,8 @@ func envCommand(logger *log.Logger, shimmedCommand string, args []string) error
521521
"PATH": setPath(execPaths),
522522
}
523523

524+
env = execenv.MergeEnv(execenv.SliceToMap(os.Environ()), env)
525+
524526
if parsedVersion.Type != "system" {
525527
env, err = execenv.Generate(plugin, env)
526528
if _, ok := err.(plugins.NoCallbackError); !ok && err != nil {
@@ -579,15 +581,15 @@ func execCommand(logger *log.Logger, command string, args []string) error {
579581
"PATH": setPath(execPaths),
580582
}
581583

584+
env = execenv.MergeEnv(execenv.SliceToMap(os.Environ()), env)
585+
582586
if parsedVersion.Type != "system" {
583587
env, err = execenv.Generate(plugin, env)
584588
if _, ok := err.(plugins.NoCallbackError); !ok && err != nil {
585589
return err
586590
}
587591
}
588592

589-
env = execenv.MergeEnv(execenv.SliceToMap(os.Environ()), env)
590-
591593
err = hook.RunWithOutput(conf, fmt.Sprintf("pre_%s_%s", plugin.Name, filepath.Base(executable)), args, os.Stdout, os.Stderr)
592594
if err != nil {
593595
os.Exit(1)

test/shim_env_command.bats

+15
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,21 @@ teardown() {
4747
echo "$output" | grep 'FOO=bar'
4848
}
4949

50+
@test "asdf env should pass through any already defined environment variables to a shim" {
51+
echo "dummy 1.0" >"$PROJECT_DIR/.tool-versions"
52+
export MYTESTENV=exec-env-pass-through
53+
run asdf install
54+
55+
echo '#!/usr/bin/env bash
56+
export FOO=bar' >"$ASDF_DIR/plugins/dummy/bin/exec-env"
57+
chmod +x "$ASDF_DIR/plugins/dummy/bin/exec-env"
58+
59+
run asdf env dummy
60+
[ "$status" -eq 0 ]
61+
echo "$output" | grep 'FOO=bar'
62+
echo "$output" | grep 'MYTESTENV=exec-env-pass-through'
63+
}
64+
5065
@test "asdf env should print error when plugin version lacks the specified executable" {
5166
echo "dummy 1.0" >"$PROJECT_DIR/.tool-versions"
5267
run asdf install

0 commit comments

Comments
 (0)