The Windows ConPty API supports reading/writing through two separate file descriptors. This incompatibility with the existing Unix convention has caused pty libraries to wait for a single pipe, instead of janking a library with the two.
We can add support to https://github.com/Netflix/go-expect relatively trivially, but would have to break the exposed API (specifically the Tty() function.
I tried modifying the upstream https://github.com/creack/pty library, but it is heavily dependant on a single *os.File, so it seems unreasonable to change.
See: microsoft/terminal#262
The Windows ConPty API supports reading/writing through two separate file descriptors. This incompatibility with the existing Unix convention has caused pty libraries to wait for a single pipe, instead of janking a library with the two.
We can add support to https://github.com/Netflix/go-expect relatively trivially, but would have to break the exposed API (specifically the
Tty()function.I tried modifying the upstream https://github.com/creack/pty library, but it is heavily dependant on a single
*os.File, so it seems unreasonable to change.See: microsoft/terminal#262