autoport: Allow binary prerequisites to be placed in the autoport directory.
This allow an easy creation of standalone "autoport pack".
Change-Id: Ibe9e38aa3b4bbd7260104e1c2a11630790ff4d2f
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: http://review.coreboot.org/10370
Tested-by: build bot (Jenkins)
Reviewed-by: Edward O'Callaghan <edward.ocallaghan@koparo.com>
diff --git a/util/autoport/log_maker.go b/util/autoport/log_maker.go
index b991ea7..e2440b4 100644
--- a/util/autoport/log_maker.go
+++ b/util/autoport/log_maker.go
@@ -9,7 +9,7 @@
"strings"
)
-func RunAndSave(output string, name string, arg ...string) {
+func TryRunAndSave(output string, name string, arg []string) error {
cmd := exec.Command(name, arg...)
f, err := os.Create(output)
@@ -22,9 +22,27 @@
err = cmd.Start()
if err != nil {
- log.Fatal(err)
+ return err
}
cmd.Wait()
+ return nil
+}
+
+func RunAndSave(output string, name string, arg ...string) {
+ err := TryRunAndSave(output, name, arg)
+ if err == nil {
+ return
+ }
+ idx := strings.LastIndex(name, "/")
+ relname := name
+ if idx >= 0 {
+ relname = name[idx+1:]
+ }
+ relname = "./" + relname
+ err = TryRunAndSave(output, relname, arg)
+ if err != nil {
+ log.Fatal(err)
+ }
}
func MakeLogs(outDir string) {