Skip to content

Commit

Permalink
Ensure initialze term on windows
Browse files Browse the repository at this point in the history
  • Loading branch information
Anders Liu committed Apr 22, 2019
1 parent fa33240 commit 1d0e5a5
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions main.go
Expand Up @@ -4,6 +4,7 @@ import (
"errors"
"flag"
"fmt"
"io"
"log"
"os"
"time"
Expand Down Expand Up @@ -83,21 +84,23 @@ func main() {
return
}

stdIn, stdOut, _ := term.StdStreams()

state, err := term.MakeRaw(os.Stdin.Fd())
if err != nil {
fmt.Println(err)
}

defer term.RestoreTerminal(os.Stdin.Fd(), state)

go send(wsChan)
receive(wsChan)
go send(wsChan, stdIn)
receive(wsChan, stdOut)
}

func send(dest *ws.Channel) {
func send(dest *ws.Channel, stdIn io.ReadCloser) {
buff := make([]byte, 1)
for {
len, err := os.Stdin.Read(buff)
len, err := stdIn.Read(buff)
if err != nil {
log.Println("Failed to read stdin: ", err.Error())
break
Expand All @@ -107,15 +110,15 @@ func send(dest *ws.Channel) {
}
}

func receive(src *ws.Channel) {
func receive(src *ws.Channel, stdOut io.Writer) {
for {
buff, more := <-src.ReadChannel()
if !more {
log.Printf("Bye.\r\n")
break
}

_, err := os.Stdout.Write(buff)
_, err := stdOut.Write(buff)
if err != nil {
log.Printf("Failed to write: %s", err.Error())
break
Expand Down

0 comments on commit 1d0e5a5

Please sign in to comment.