gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

terminal_check_windows.go (490B)


      1 // +build !appengine,!js,windows
      2 
      3 package logrus
      4 
      5 import (
      6 	"io"
      7 	"os"
      8 
      9 	"golang.org/x/sys/windows"
     10 )
     11 
     12 func checkIfTerminal(w io.Writer) bool {
     13 	switch v := w.(type) {
     14 	case *os.File:
     15 		handle := windows.Handle(v.Fd())
     16 		var mode uint32
     17 		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
     25 	}
     26 	return false
     27 }