mage: Restore -v behaviour
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 25 Nov 2019 10:26:47 +0000 (11:26 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 25 Nov 2019 17:59:06 +0000 (18:59 +0100)
magefile.go

index 6fcf17b13d9181d97f54fc0564dda73aa5d5e523..a888fb78d9c7c90d9613199b47000e47891bc36c 100644 (file)
@@ -159,31 +159,19 @@ func testGoFlags() string {
 // Note that we don't run with the extended tag. Currently not supported in 32 bit.
 func Test386() error {
        env := map[string]string{"GOARCH": "386", "GOFLAGS": testGoFlags()}
-       output, err := sh.OutputWith(env, goexe, "test", "./...")
-       if err != nil {
-               fmt.Printf(output)
-       }
-       return err
+       return runCmd(env, goexe, "test", "./...")
 }
 
 // Run tests
 func Test() error {
        env := map[string]string{"GOFLAGS": testGoFlags()}
-       output, err := sh.OutputWith(env, goexe, "test", "./...", "-tags", buildTags())
-       if err != nil {
-               fmt.Printf(output)
-       }
-       return err
+       return runCmd(env, goexe, "test", "./...", "-tags", buildTags())
 }
 
 // Run tests with race detector
 func TestRace() error {
        env := map[string]string{"GOFLAGS": testGoFlags()}
-       output, err := sh.OutputWith(env, goexe, "test", "-race", "./...", "-tags", buildTags())
-       if err != nil {
-               fmt.Printf(output)
-       }
-       return err
+       return runCmd(env, goexe, "test", "-race", "./...", "-tags", buildTags())
 }
 
 // Run gofmt linter
@@ -319,6 +307,18 @@ func TestCoverHTML() error {
        return sh.Run(goexe, "tool", "cover", "-html="+coverAll)
 }
 
+func runCmd(env map[string]string, cmd string, args ...string) error {
+       if mg.Verbose() {
+               return sh.RunWith(env, cmd, args...)
+       }
+       output, err := sh.OutputWith(env, cmd, args...)
+       if err != nil {
+               fmt.Fprint(os.Stderr, output)
+       }
+
+       return err
+}
+
 func isGoLatest() bool {
        return strings.Contains(runtime.Version(), "1.12")
 }