ref: a8234dc3c631ff8477654661683f852d61575218
dir: /hellclient.go/
package main
import (
"github.com/chzyer/readline"
"strings"
)
type Hellclient struct {
isPaused bool
rl *readline.Instance
pauseChan chan bool
}
func NewHellclient() (*Hellclient, error) {
rl, err := readline.New("> ")
if err != nil {
return nil, err
}
return &Hellclient{rl: rl, pauseChan: make(chan bool)}, nil
}
func (hc *Hellclient) updatePrompt() {
var sb strings.Builder
if hc.isPaused {
sb.WriteString("STREAMING PAUSED ")
}
sb.WriteString("> ")
hc.rl.SetPrompt(sb.String())
}
func (hc *Hellclient) pause(on bool) {
hc.isPaused = on
hc.pauseChan <- hc.isPaused
hc.updatePrompt()
}
func (hc *Hellclient) togglepause() {
hc.isPaused = !hc.isPaused
hc.pauseChan <- hc.isPaused
hc.updatePrompt()
}