blob: 2879eb50ea6d519f0d9f3f786f234793536a8bbb [file] [log] [blame]
kesavand2cde6582020-06-22 04:56:23 -04001// +build !appengine,!js,windows
2
3package logrus
4
5import (
6 "io"
7 "os"
kesavand2cde6582020-06-22 04:56:23 -04008
kesavandc71914f2022-03-25 11:19:03 +05309 "golang.org/x/sys/windows"
kesavand2cde6582020-06-22 04:56:23 -040010)
11
kesavand2cde6582020-06-22 04:56:23 -040012func checkIfTerminal(w io.Writer) bool {
kesavand2cde6582020-06-22 04:56:23 -040013 switch v := w.(type) {
14 case *os.File:
kesavandc71914f2022-03-25 11:19:03 +053015 handle := windows.Handle(v.Fd())
kesavand2cde6582020-06-22 04:56:23 -040016 var mode uint32
kesavandc71914f2022-03-25 11:19:03 +053017 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
kesavand2cde6582020-06-22 04:56:23 -040025 }
kesavandc71914f2022-03-25 11:19:03 +053026 return false
kesavand2cde6582020-06-22 04:56:23 -040027}