annotate vendor/github.com/sirupsen/logrus/terminal_check_windows.go @ 66:787b5ee0289d draft

Use vendored modules Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author yakumo.izuru
date Sun, 23 Jul 2023 13:18:53 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
1 // +build !appengine,!js,windows
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
2
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
3 package logrus
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
4
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
5 import (
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
6 "io"
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
7 "os"
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
8
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
9 "golang.org/x/sys/windows"
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
10 )
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
11
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
12 func checkIfTerminal(w io.Writer) bool {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
13 switch v := w.(type) {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
14 case *os.File:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
15 handle := windows.Handle(v.Fd())
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
16 var mode uint32
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
17 if err := windows.GetConsoleMode(handle, &mode); err != nil {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
18 return false
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
19 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
20 mode |= windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
21 if err := windows.SetConsoleMode(handle, mode); err != nil {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
22 return false
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
23 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
24 return true
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
25 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
26 return false
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
27 }