veyron/services/mgmt/build/impl: locating cross-compiled binaries correctly
Change-Id: Ief6cc69d7f747e36c1c0f9654a69d170492f849b
diff --git a/services/mgmt/build/impl/invoker.go b/services/mgmt/build/impl/invoker.go
index 1548c59..34e9f4d 100644
--- a/services/mgmt/build/impl/invoker.go
+++ b/services/mgmt/build/impl/invoker.go
@@ -87,13 +87,16 @@
return output.Bytes(), errBuildFailed
}
binDir := filepath.Join(root, "go", "bin")
+ if runtime.GOARCH != archString(arch) || runtime.GOOS != osString(opsys) {
+ binDir = filepath.Join(binDir, fmt.Sprintf("%v_%v", osString(opsys), archString(arch)))
+ }
files, err := ioutil.ReadDir(binDir)
if err != nil && !os.IsNotExist(err) {
vlog.Errorf("ReadDir(%v) failed: %v", binDir, err)
return nil, errInternalError
}
for _, file := range files {
- binPath := filepath.Join(root, "go", "bin", file.Name())
+ binPath := filepath.Join(binDir, file.Name())
bytes, err := ioutil.ReadFile(binPath)
if err != nil {
vlog.Errorf("ReadFile(%v) failed: %v", binPath, err)