58 lines
827 B
Go
58 lines
827 B
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"errors"
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
|
|
"go.wit.com/log"
|
|
)
|
|
|
|
func showOptions(b bool, s []string) {
|
|
fmt.Println("")
|
|
for _, line := range s {
|
|
fmt.Println(line)
|
|
}
|
|
fmt.Println("")
|
|
if b {
|
|
fmt.Println("Enter (Y/n)")
|
|
} else {
|
|
fmt.Println("Enter (y/N)")
|
|
}
|
|
}
|
|
|
|
// if b == true, default is to continue with 'Y'
|
|
func simpleStdin(b bool, s []string) {
|
|
/*
|
|
if argv.Auto {
|
|
return
|
|
}
|
|
*/
|
|
err := errors.New("user cancelled via stdin")
|
|
showOptions(b, s)
|
|
scanner := bufio.NewScanner(os.Stdin)
|
|
for scanner.Scan() {
|
|
s := scanner.Text()
|
|
s = strings.TrimSpace(s)
|
|
s = strings.ToLower(s)
|
|
switch s {
|
|
case "y":
|
|
log.Info("got y")
|
|
return
|
|
case "n":
|
|
log.Info("got n")
|
|
badExit(err)
|
|
case "":
|
|
if b {
|
|
return
|
|
} else {
|
|
badExit(err)
|
|
}
|
|
default:
|
|
badExit(err)
|
|
}
|
|
}
|
|
}
|