66
|
1 // +build !appengine,!js,windows
|
|
2
|
|
3 package logrus
|
|
4
|
|
5 import (
|
|
6 "io"
|
|
7 "os"
|
|
8
|
|
9 "golang.org/x/sys/windows"
|
|
10 )
|
|
11
|
|
12 func checkIfTerminal(w io.Writer) bool {
|
|
13 switch v := w.(type) {
|
|
14 case *os.File:
|
|
15 handle := windows.Handle(v.Fd())
|
|
16 var mode uint32
|
|
17 if err := windows.GetConsoleMode(handle, &mode); err != nil {
|
|
18 return false
|
|
19 }
|
|
20 mode |= windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING
|
|
21 if err := windows.SetConsoleMode(handle, mode); err != nil {
|
|
22 return false
|
|
23 }
|
|
24 return true
|
|
25 }
|
|
26 return false
|
|
27 }
|