diff options
author | Tobias Bosch <tbosch@google.com> | 2019-08-15 17:17:57 -0700 |
---|---|---|
committer | Tobias Bosch <tbosch@google.com> | 2019-08-16 14:49:15 +0000 |
commit | 5f98f2d395c2888a6b659c7bf6b0ae732baacbfc (patch) | |
tree | c904c3d84e241f93cd1fba7c07b05613466d400a /compiler_wrapper/command.go | |
parent | 47f580fe94bc41a39c010559c78d918d6fabc2db (diff) | |
download | toolchain-utils-5f98f2d395c2888a6b659c7bf6b0ae732baacbfc.tar.gz |
Resolve wrapper path against path env
BUG=chromium:773875
TEST=unit test
Change-Id: I150eb18a5d765d43ee7a2341767ff41f6641c6ac
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1757222
Tested-by: Tobias Bosch <tbosch@google.com>
Reviewed-by: George Burgess <gbiv@chromium.org>
Diffstat (limited to 'compiler_wrapper/command.go')
-rw-r--r-- | compiler_wrapper/command.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/compiler_wrapper/command.go b/compiler_wrapper/command.go index b20f19eb..ade12ede 100644 --- a/compiler_wrapper/command.go +++ b/compiler_wrapper/command.go @@ -5,6 +5,7 @@ package main import ( + "fmt" "os" "os/exec" "path/filepath" @@ -41,6 +42,16 @@ func ensurePathEnv(cmd *exec.Cmd) { cmd.Env = append(cmd.Env, "PATH=") } +func resolveAgainstPathEnv(env env, cmd string) (string, error) { + for _, path := range strings.Split(env.getenv("PATH"), ":") { + resolvedPath := filepath.Join(path, cmd) + if _, err := os.Lstat(resolvedPath); err == nil { + return resolvedPath, nil + } + } + return "", fmt.Errorf("Couldn't find cmd %q in path", cmd) +} + func getAbsCmdPath(env env, cmd *command) string { path := cmd.Path if !filepath.IsAbs(path) { |