readline/example/main.go

42 lines
622 B
Go
Raw Normal View History

2015-09-20 18:14:29 +03:00
package main
import (
"io"
"log"
"strconv"
"time"
"github.com/chzyer/readline"
)
func main() {
2015-09-21 08:30:10 +03:00
l, err := readline.New("> ")
2015-09-20 18:14:29 +03:00
if err != nil {
panic(err)
}
2015-09-21 08:30:10 +03:00
defer l.Close()
2015-09-20 18:14:29 +03:00
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:
}