forked from mirror/readline
43 lines
652 B
Go
43 lines
652 B
Go
package main
|
|
|
|
import (
|
|
"io"
|
|
"log"
|
|
"strconv"
|
|
"time"
|
|
|
|
"github.com/chzyer/readline"
|
|
)
|
|
|
|
func main() {
|
|
t, err := readline.NewTerminal()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer t.Close()
|
|
|
|
l := t.NewReadline("> ")
|
|
log.SetOutput(l.Stderr())
|
|
for {
|
|
line, err := l.Readline()
|
|
if err != nil {
|
|
break
|
|
}
|
|
switch line {
|
|
case "help":
|
|
io.WriteString(l.Stderr(), "sayhello: start to display oneline log per second\nbye: quit\n")
|
|
case "sayhello":
|
|
go func() {
|
|
for _ = range time.Tick(time.Second) {
|
|
log.Println("hello")
|
|
}
|
|
}()
|
|
case "bye":
|
|
goto exit
|
|
default:
|
|
log.Println("you said:", strconv.Quote(line))
|
|
}
|
|
}
|
|
exit:
|
|
}
|