1 package middleware
2
3
4
5
6 import (
7 "fmt"
8 "io"
9 "os"
10 )
11
12 var (
13
14 nBlack = []byte{'\033', '[', '3', '0', 'm'}
15 nRed = []byte{'\033', '[', '3', '1', 'm'}
16 nGreen = []byte{'\033', '[', '3', '2', 'm'}
17 nYellow = []byte{'\033', '[', '3', '3', 'm'}
18 nBlue = []byte{'\033', '[', '3', '4', 'm'}
19 nMagenta = []byte{'\033', '[', '3', '5', 'm'}
20 nCyan = []byte{'\033', '[', '3', '6', 'm'}
21 nWhite = []byte{'\033', '[', '3', '7', 'm'}
22
23 bBlack = []byte{'\033', '[', '3', '0', ';', '1', 'm'}
24 bRed = []byte{'\033', '[', '3', '1', ';', '1', 'm'}
25 bGreen = []byte{'\033', '[', '3', '2', ';', '1', 'm'}
26 bYellow = []byte{'\033', '[', '3', '3', ';', '1', 'm'}
27 bBlue = []byte{'\033', '[', '3', '4', ';', '1', 'm'}
28 bMagenta = []byte{'\033', '[', '3', '5', ';', '1', 'm'}
29 bCyan = []byte{'\033', '[', '3', '6', ';', '1', 'm'}
30 bWhite = []byte{'\033', '[', '3', '7', ';', '1', 'm'}
31
32 reset = []byte{'\033', '[', '0', 'm'}
33 )
34
35 var IsTTY bool
36
37 func init() {
38
39
40
41
42
43
44
45
46
47 fi, err := os.Stdout.Stat()
48 if err == nil {
49 m := os.ModeDevice | os.ModeCharDevice
50 IsTTY = fi.Mode()&m == m
51 }
52 }
53
54
55 func cW(w io.Writer, useColor bool, color []byte, s string, args ...interface{}) {
56 if IsTTY && useColor {
57 w.Write(color)
58 }
59 fmt.Fprintf(w, s, args...)
60 if IsTTY && useColor {
61 w.Write(reset)
62 }
63 }
64
View as plain text