asciinema-editor/command.go

36 lines
627 B
Go
Raw Normal View History

2020-10-23 17:58:10 +00:00
package main
import (
"bufio"
"encoding/json"
"log"
)
func handleWrite() {
var b []byte
var err error
for c := range commandsOut {
b, err = json.Marshal(c)
if err != nil {
log.Fatalf("failed to marshal %+v: %s", c, err)
}
commandConn.Write(append(b, byte('\n')))
}
}
func handleRead() {
var c *Command
scanner := bufio.NewScanner(commandConn)
for scanner.Scan() {
c = &Command{}
err := json.Unmarshal(scanner.Bytes(), c)
if err != nil {
log.Fatalf("failed to unmarshal %s: %s", string(scanner.Bytes()), err)
}
commandsIn <- c
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
}