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) } } }