mirror of https://github.com/poanetwork/quorum.git
31 lines
780 B
Go
31 lines
780 B
Go
|
package raft
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"io"
|
||
|
"os"
|
||
|
"runtime"
|
||
|
)
|
||
|
|
||
|
// TODO: this is just copied over from cmd/utils/cmd.go. dedupe
|
||
|
|
||
|
// Fatalf formats a message to standard error and exits the program.
|
||
|
// The message is also printed to standard output if standard error
|
||
|
// is redirected to a different file.
|
||
|
func fatalf(format string, args ...interface{}) {
|
||
|
w := io.MultiWriter(os.Stdout, 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...)
|
||
|
os.Exit(1)
|
||
|
}
|