Got rid of IsTerminal call to reduce external dependencies

This commit is contained in:
Andrey Tcherepanov
2019-03-26 10:19:59 -06:00
parent 1115b87d62
commit 10ff0d07c3
4 changed files with 24 additions and 8 deletions
+5 -5
View File
@@ -1,9 +1,9 @@
// +build !appengine,!js,!windows,aix
// +build aix
package logrus
import "io"
import (
"golang.org/x/sys/unix"
)
func checkIfTerminal(w io.Writer) bool {
return false
}
const ioctlReadTermios = unix.TCGETS
+7
View File
@@ -0,0 +1,7 @@
// +build darwin dragonfly freebsd netbsd openbsd
package logrus
import "golang.org/x/sys/unix"
const ioctlReadTermios = unix.TIOCGETA
+7
View File
@@ -0,0 +1,7 @@
// +build linux
package logrus
import "golang.org/x/sys/unix"
const ioctlReadTermios = unix.TCGETS
+5 -3
View File
@@ -1,4 +1,4 @@
// +build !appengine,!js,!windows,!aix
// +build !appengine,!js,!windows
package logrus
@@ -6,13 +6,15 @@ import (
"io"
"os"
"golang.org/x/crypto/ssh/terminal"
"golang.org/x/sys/unix"
)
func checkIfTerminal(w io.Writer) bool {
switch v := w.(type) {
case *os.File:
return terminal.IsTerminal(int(v.Fd()))
_, err := unix.IoctlGetTermios(int(v.Fd()), ioctlReadTermios)
return err == nil
default:
return false
}