cmd/geth: fix #853 colorize console output in windows

This commit is contained in:
Péter Szilágyi
2015-05-05 13:24:15 +03:00
parent ac85fdc75e
commit c750ef09e1
10 changed files with 763 additions and 2 deletions

View File

@ -23,14 +23,14 @@ package main
import (
"bufio"
"fmt"
"io"
"io/ioutil"
"os"
"path"
"runtime"
"strconv"
"time"
"path"
"github.com/codegangsta/cli"
"github.com/ethereum/ethash"
"github.com/ethereum/go-ethereum/accounts"
@ -41,6 +41,8 @@ import (
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/logger"
"github.com/mattn/go-colorable"
"github.com/mattn/go-isatty"
"github.com/peterh/liner"
)
import _ "net/http/pprof"
@ -301,6 +303,14 @@ func run(ctx *cli.Context) {
}
func console(ctx *cli.Context) {
// Wrap the standard output with a colorified stream (windows)
if isatty.IsTerminal(os.Stdout.Fd()) {
if pr, pw, err := os.Pipe(); err == nil {
go io.Copy(colorable.NewColorableStdout(), pr)
os.Stdout = pw
}
}
cfg := utils.MakeEthConfig(ClientIdentifier, nodeNameVersion, ctx)
ethereum, err := eth.New(cfg)
if err != nil {