From ea0a9a0e132bd9ffd0013921e4ca3f53bcdbb50e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Thu, 8 Jun 2017 08:52:21 +0200 Subject: [PATCH] [pkg/term] temporarily use STD_*_HANDLE from syscall again Due to the CL https://go-review.googlesource.com/c/39608/ in x/sys/windows which changed the definitions of STD_INPUT_HANDLE, STD_OUTPUT_HANDLE and STD_ERROR_HANDLE, we get the following failure after re-vendoring x/sys/windows: 07:47:01 # github.com/docker/docker/pkg/term 07:47:01 pkg/term/term_windows.go:82: constant 4294967286 overflows int 07:47:01 pkg/term/term_windows.go:88: constant 4294967285 overflows int 07:47:01 pkg/term/term_windows.go:94: constant 4294967284 overflows int 07:47:12 Build step 'Execute shell' marked build as failure Temporarily switch back pkg/term to use these constants from the syscall package and add a comment about it. To really fix this, go-ansiterm should probably be switched to use x/sys/windows. Signed-off-by: Tobias Klauser Upstream-commit: ef5252fc5dcd83d1b8dfe173a68691c8a63e7e4a Component: engine --- components/engine/pkg/term/term_windows.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/components/engine/pkg/term/term_windows.go b/components/engine/pkg/term/term_windows.go index fd023ba310..c0332c3cdb 100644 --- a/components/engine/pkg/term/term_windows.go +++ b/components/engine/pkg/term/term_windows.go @@ -6,10 +6,10 @@ import ( "io" "os" "os/signal" + "syscall" // used for STD_INPUT_HANDLE, STD_OUTPUT_HANDLE and STD_ERROR_HANDLE "github.com/Azure/go-ansiterm/winterm" "github.com/docker/docker/pkg/term/windows" - "golang.org/x/sys/windows" ) // State holds the console mode for the terminal. @@ -78,20 +78,24 @@ func StdStreams() (stdIn io.ReadCloser, stdOut, stdErr io.Writer) { emulateStderr = false } + // Temporarily use STD_INPUT_HANDLE, STD_OUTPUT_HANDLE and + // STD_ERROR_HANDLE from syscall rather than x/sys/windows as long as + // go-ansiterm hasn't switch to x/sys/windows. + // TODO: switch back to x/sys/windows once go-ansiterm has switched if emulateStdin { - stdIn = windowsconsole.NewAnsiReader(windows.STD_INPUT_HANDLE) + stdIn = windowsconsole.NewAnsiReader(syscall.STD_INPUT_HANDLE) } else { stdIn = os.Stdin } if emulateStdout { - stdOut = windowsconsole.NewAnsiWriter(windows.STD_OUTPUT_HANDLE) + stdOut = windowsconsole.NewAnsiWriter(syscall.STD_OUTPUT_HANDLE) } else { stdOut = os.Stdout } if emulateStderr { - stdErr = windowsconsole.NewAnsiWriter(windows.STD_ERROR_HANDLE) + stdErr = windowsconsole.NewAnsiWriter(syscall.STD_ERROR_HANDLE) } else { stdErr = os.Stderr }