cmd/bent: always rewrite go.mod in build subdirectory
Possibility of reusing an older one could lead to inconsistent results or errors.
Change-Id: I56fdf070bb8aab25b37b0665e1878397e8992cfb
Reviewed-on: https://go-review.googlesource.com/c/benchmarks/+/379539
Trust: David Chase <drchase@google.com>
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Pratt <mpratt@google.com>
diff --git a/cmd/bent/bent.go b/cmd/bent/bent.go
index 0a2472f..22d681a 100644
--- a/cmd/bent/bent.go
+++ b/cmd/bent/bent.go
@@ -546,25 +546,26 @@
os.Exit(2)
}
goDotMod := path.Join(bench.BuildDir, "go.mod")
- if _, err := os.Stat(goDotMod); err != nil { // if error assume go.mod does not exist
- cmd := exec.Command("go", "mod", "init", "build")
- cmd.Env = defaultEnv
- cmd.Dir = bench.BuildDir
+ if _, err := os.Stat(goDotMod); err == nil {
+ os.Remove(goDotMod) // always want a fresh go.mod
+ }
+ cmd := exec.Command("go", "mod", "init", "build")
+ cmd.Env = defaultEnv
+ cmd.Dir = bench.BuildDir
- if verbose > 0 {
- fmt.Println(asCommandLine(dirs.wd, cmd))
- } else {
- fmt.Print(".")
- }
- _, err := cmd.Output()
- if err != nil {
- ee := err.(*exec.ExitError)
- fmt.Printf("There was an error running 'go mod init', stderr = %s", ee.Stderr)
- os.Exit(2)
- }
+ if verbose > 0 {
+ fmt.Println(asCommandLine(dirs.wd, cmd))
+ } else {
+ fmt.Print(".")
+ }
+ _, err := cmd.Output()
+ if err != nil {
+ ee := err.(*exec.ExitError)
+ fmt.Printf("There was an error running 'go mod init', stderr = %s", ee.Stderr)
+ os.Exit(2)
}
- cmd := exec.Command("go", "get", "-d", "-t", "-v", bench.Repo+bench.Version)
+ cmd = exec.Command("go", "get", "-d", "-t", "-v", bench.Repo+bench.Version)
cmd.Env = replaceEnvs(defaultEnv, bench.GcEnv)
cmd.Dir = bench.BuildDir
@@ -576,7 +577,7 @@
} else {
fmt.Print(".")
}
- _, err := cmd.Output()
+ _, err = cmd.Output()
if err != nil {
ee := err.(*exec.ExitError)
s := fmt.Sprintf("There was an error running 'go get', stderr = %s", ee.Stderr)