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