Add Windows-specific code to enable building on Windows #1996
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
These changes are largely factoring out Unix-specific code and substituting code that will work with Windows, enabled by Go's build flag when compiling for Windows. The primary use case is to use
tsh
natively on Windows.Also included is a mechanism to interact with
ssh-agent
when running on Windows, including using named pipes to interact with Microsoft's new native OpenSSH as well as Cygwin's pseudo Unix domain sockets when running Git for Windows.There are some changes to the vendoring that will have to be incorporated before this will build properly. Specifically,
moby/moby/pkg/term
is broken for Windows at the moment, and also does not include the required functionSetWinsize
. This one may need to be forked and corrected. Additionally,Microsoft/go-winio
will need to be vendored.