aboutsummaryrefslogtreecommitdiff
path: root/compiler_wrapper/command.go
diff options
context:
space:
mode:
authorTobias Bosch <tbosch@google.com>2019-08-15 17:17:57 -0700
committerTobias Bosch <tbosch@google.com>2019-08-16 14:49:15 +0000
commit5f98f2d395c2888a6b659c7bf6b0ae732baacbfc (patch)
treec904c3d84e241f93cd1fba7c07b05613466d400a /compiler_wrapper/command.go
parent47f580fe94bc41a39c010559c78d918d6fabc2db (diff)
downloadtoolchain-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.go11
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) {