github.com/SmartMeshFoundation/Spectrum@v0.0.0-20220621030607-452a266fee1e/log/term/terminal_windows.go (about) 1 // Based on ssh/terminal: 2 // Copyright 2011 The Go Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style 4 // license that can be found in the LICENSE file. 5 6 // +build windows 7 8 package term 9 10 import ( 11 "syscall" 12 "unsafe" 13 ) 14 15 var kernel32 = syscall.NewLazyDLL("kernel32.dll") 16 17 var ( 18 procGetConsoleMode = kernel32.NewProc("GetConsoleMode") 19 ) 20 21 // IsTty returns true if the given file descriptor is a terminal. 22 func IsTty(fd uintptr) bool { 23 var st uint32 24 r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0) 25 return r != 0 && e == 0 26 }