blob: 2879eb50ea6d519f0d9f3f786f234793536a8bbb [file] [log] [blame]
khenaidooab1f7bd2019-11-14 14:00:27 -05001// +build !appengine,!js,windows
2
3package logrus
4
5import (
6 "io"
7 "os"
khenaidood948f772021-08-11 17:49:24 -04008
Abhay Kumara2ae5992025-11-10 14:02:24 +00009 "golang.org/x/sys/windows"
khenaidooab1f7bd2019-11-14 14:00:27 -050010)
11
12func checkIfTerminal(w io.Writer) bool {
13 switch v := w.(type) {
14 case *os.File:
Abhay Kumara2ae5992025-11-10 14:02:24 +000015 handle := windows.Handle(v.Fd())
khenaidooab1f7bd2019-11-14 14:00:27 -050016 var mode uint32
Abhay Kumara2ae5992025-11-10 14:02:24 +000017 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
khenaidooab1f7bd2019-11-14 14:00:27 -050025 }
Abhay Kumara2ae5992025-11-10 14:02:24 +000026 return false
khenaidooab1f7bd2019-11-14 14:00:27 -050027}