s
Size: a a a
s
package main
import (
"bufio"
"fmt"
"log"
"os"
"os/signal"
"golang.org/x/crypto/ssh/terminal"
)
func getInput() error {
b := bufio.NewReader(os.Stdin)
for {
r, _, err := b.ReadRune()
if err != nil {
return fmt.Errorf("reading stdin: %w", err)
}
fmt.Println(r)
}
}
func Start() {
state, err := terminal.MakeRaw(0)
if err != nil {
log.Fatalf("setting stdin to raw: %w", err)
}
defer func() {
if err := terminal.Restore(0, state); err != nil {
log.Fatalf("restoring terminal: %w", err)
}
}()
go func() {
if err = getInput(); err != nil {
log.Fatal(err)
}
}()
sig := make(chan os.Signal, 1)
signal.Notify(sig, os.Interrupt)
<-sig
os.Exit(1)
}
DP
RS
switch case?