1// +build windows 2 3package hclog 4 5import ( 6 "os" 7 8 colorable "github.com/mattn/go-colorable" 9 "github.com/mattn/go-isatty" 10) 11 12// setColorization will mutate the values of this logger 13// to approperately configure colorization options. It provides 14// a wrapper to the output stream on Windows systems. 15func (l *intLogger) setColorization(opts *LoggerOptions) { 16 switch opts.Color { 17 case ColorOff: 18 return 19 case ForceColor: 20 fi := l.checkWriterIsFile() 21 l.writer.w = colorable.NewColorable(fi) 22 case AutoColor: 23 fi := l.checkWriterIsFile() 24 isUnixTerm := isatty.IsTerminal(os.Stdout.Fd()) 25 isCygwinTerm := isatty.IsCygwinTerminal(os.Stdout.Fd()) 26 isTerm := isUnixTerm || isCygwinTerm 27 if !isTerm { 28 l.writer.color = ColorOff 29 return 30 } 31 l.writer.w = colorable.NewColorable(fi) 32 } 33} 34