1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
//go:build ignore
package main
import (
"fmt"
"github.com/AlecAivazis/survey/v2"
)
// the questions to ask
var simpleQs = []*survey.Question{
{
Name: "name",
Prompt: &survey.Input{
Message: "What is your name?",
Default: "Johnny Appleseed",
},
},
{
Name: "color",
Prompt: &survey.Select{
Message: "Choose a color:",
Options: []string{"red", "blue", "green", "yellow"},
Default: "yellow",
},
Validate: survey.Required,
},
}
var singlePrompt = &survey.Input{
Message: "What is your name?",
Default: "Johnny Appleseed",
}
func main() {
fmt.Println("Asking many.")
// a place to store the answers
ans := struct {
Name string
Color string
}{}
err := survey.Ask(simpleQs, &ans)
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Println("Asking one.")
answer := ""
err = survey.AskOne(singlePrompt, &answer)
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Printf("Answered with %v.\n", answer)
fmt.Println("Asking one with validation.")
vAns := ""
err = survey.AskOne(&survey.Input{Message: "What is your name?"}, &vAns, survey.WithValidator(survey.Required))
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Printf("Answered with %v.\n", vAns)
}
|