// +build !appengine,!js,windows | |
package logrus | |
import ( | |
"io" | |
"os" | |
"golang.org/x/sys/windows" | |
) | |
func checkIfTerminal(w io.Writer) bool { | |
switch v := w.(type) { | |
case *os.File: | |
handle := windows.Handle(v.Fd()) | |
var mode uint32 | |
if err := windows.GetConsoleMode(handle, &mode); err != nil { | |
return false | |
} | |
mode |= windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING | |
if err := windows.SetConsoleMode(handle, mode); err != nil { | |
return false | |
} | |
return true | |
} | |
return false | |
} |