37 lines
426 B
Go
37 lines
426 B
Go
package cli
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
func Listen() {
|
|
reader := bufio.NewScanner(os.Stdin)
|
|
|
|
fmt.Print("> ")
|
|
|
|
for {
|
|
|
|
if !reader.Scan() {
|
|
log.Println("Program terminated (SIGINT)")
|
|
return
|
|
}
|
|
|
|
if err := reader.Err(); err != nil {
|
|
log.Printf("Console input error: %v\n", err)
|
|
return
|
|
}
|
|
|
|
text := strings.TrimSpace(reader.Text())
|
|
|
|
switch text {
|
|
case "exit":
|
|
return
|
|
}
|
|
}
|
|
|
|
}
|