Files
fn-serverless/fn/run_windows.go
2016-12-06 04:18:56 +01:00

28 lines
518 B
Go

// +build windows
package main
import (
"io"
"os"
"strings"
"syscall"
"unsafe"
)
func stdin() io.Reader {
var stdin io.Reader = os.Stdin
if isTerminal(int(os.Stdin.Fd())) {
stdin = strings.NewReader("")
}
return stdin
}
func isTerminal(fd int) bool {
kernel32 := syscall.NewLazyDLL("kernel32.dll")
procGetConsoleMode := kernel32.NewProc("GetConsoleMode")
var st uint32
r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0)
return r != 0 && e == 0
}