Skip to content

Commit 1f41910

Browse files
committed
Fix env ordering
1 parent c3b9e85 commit 1f41910

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

internal/runners/exec/exec.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"os/exec"
77
"path/filepath"
88
"runtime"
9+
"sort"
910
"strconv"
1011
"strings"
1112

@@ -24,7 +25,7 @@ import (
2425
"github.com/ActiveState/cli/internal/output"
2526
"github.com/ActiveState/cli/internal/primer"
2627
"github.com/ActiveState/cli/internal/runbits/rationalize"
27-
"github.com/ActiveState/cli/internal/runbits/runtime"
28+
runtime_runbit "github.com/ActiveState/cli/internal/runbits/runtime"
2829
"github.com/ActiveState/cli/internal/runbits/runtime/trigger"
2930
"github.com/ActiveState/cli/internal/subshell"
3031
"github.com/ActiveState/cli/internal/virtualenvironment"
@@ -184,7 +185,12 @@ func (s *Exec) Run(params *Params, args ...string) (rerr error) {
184185
}
185186
}
186187

187-
_, _, err = osutils.ExecuteAndPipeStd(exeTarget, args[1:], osutils.EnvMapToSlice(env))
188+
// Sort the env so our PATH environment variable is interpreted first
189+
envs := osutils.EnvMapToSlice(env)
190+
sort.Slice(envs, func(i, j int) bool {
191+
return envs[i] > envs[j]
192+
})
193+
_, _, err = osutils.ExecuteAndPipeStd(exeTarget, args[1:], envs)
188194
if eerr, ok := err.(*exec.ExitError); ok {
189195
return errs.Silence(errs.WrapExitCode(eerr, eerr.ExitCode()))
190196
}

0 commit comments

Comments
 (0)