aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Lange <fjl@twurst.com>2016-09-26 23:23:26 +0800
committerFelix Lange <fjl@twurst.com>2016-09-26 23:35:19 +0800
commitb04219fdbbef06527f77e93129d6a196b6841f44 (patch)
tree53481e2ae95e42bca78d3e0d9b27d508441c7d6a
parent61734cc7ae8dfc194a214f9ae442deb95d79b3a4 (diff)
downloaddexon-b04219fdbbef06527f77e93129d6a196b6841f44.tar.gz
dexon-b04219fdbbef06527f77e93129d6a196b6841f44.tar.zst
dexon-b04219fdbbef06527f77e93129d6a196b6841f44.zip
cmd/utils: don't check for stderr redirect on windows
The redirect check did not work on Go 1.6 and below because Stat returned an error for stdout and stderr. In Go 1.7 Stat works on stdout but doesn't return anything meaningful, causing cmd/geth test failures because the message is printed to stderr only. Fix it by printing to stdout only.
-rw-r--r--cmd/utils/cmd.go15
1 files changed, 11 insertions, 4 deletions
diff --git a/cmd/utils/cmd.go b/cmd/utils/cmd.go
index 3b521a0e1..584afc804 100644
--- a/cmd/utils/cmd.go
+++ b/cmd/utils/cmd.go
@@ -23,6 +23,7 @@ import (
"os"
"os/signal"
"regexp"
+ "runtime"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core"
@@ -52,10 +53,16 @@ func openLogFile(Datadir string, filename string) *os.File {
// is redirected to a different file.
func Fatalf(format string, args ...interface{}) {
w := io.MultiWriter(os.Stdout, os.Stderr)
- outf, _ := os.Stdout.Stat()
- errf, _ := os.Stderr.Stat()
- if outf != nil && errf != nil && os.SameFile(outf, errf) {
- w = os.Stderr
+ if runtime.GOOS == "windows" {
+ // The SameFile check below doesn't work on Windows.
+ // stdout is unlikely to get redirected though, so just print there.
+ w = os.Stdout
+ } else {
+ outf, _ := os.Stdout.Stat()
+ errf, _ := os.Stderr.Stat()
+ if outf != nil && errf != nil && os.SameFile(outf, errf) {
+ w = os.Stderr
+ }
}
fmt.Fprintf(w, "Fatal: "+format+"\n", args...)
logger.Flush()