| // +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 | |
| } |