Skip to content

Commit fa6acf7

Browse files
committed
Add ablity to break from all prompts
Fixes #119 Signed-off-by: Matt Stratton <[email protected]>
1 parent 9b1787c commit fa6acf7

File tree

2 files changed

+54
-18
lines changed

2 files changed

+54
-18
lines changed

cmd/prompt.go

Lines changed: 46 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ func mainPrompt() (err error) {
2121
"Quit the application",
2222
},
2323
}
24-
survey.AskOne(prompt, &selection, nil)
24+
err := survey.AskOne(prompt, &selection, nil)
25+
if err != nil {
26+
break
27+
}
2528
switch selection {
2629
case "Create a new event":
2730
event.CreateEvent("", "")
@@ -45,40 +48,67 @@ func createSpeakerPrompt(city, year string) (err error) {
4548
prompt := &survey.Input{
4649
Message: "Enter the city name:",
4750
}
48-
survey.AskOne(prompt, &city, survey.Required)
51+
err := survey.AskOne(prompt, &city, survey.Required)
52+
// handle interrupts
53+
if err != nil {
54+
exitCode = false
55+
break
56+
}
4957
}
5058

5159
if year == "" {
5260
prompt := &survey.Input{
5361
Message: "Enter the year:",
5462
}
55-
survey.AskOne(prompt, &year, survey.Required)
63+
err := survey.AskOne(prompt, &year, survey.Required)
64+
// handle interrupts
65+
if err != nil {
66+
exitCode = false
67+
break
68+
}
5669
}
5770
speaker.CreateSpeaker("", city, year)
5871
prompt := &survey.Confirm{
5972
Message: "Do you want to add another speaker?",
6073
}
61-
survey.AskOne(prompt, &exitCode, nil)
74+
err := survey.AskOne(prompt, &exitCode, nil)
75+
// handle interrupts
76+
if err != nil {
77+
exitCode = false
78+
break
79+
}
6280
}
6381
return
6482
}
6583

6684
func showSpeakerPrompt(city, year string) (err error) {
67-
68-
if city == "" {
69-
prompt := &survey.Input{
70-
Message: "Enter the city name:",
85+
var exitCode = true
86+
for exitCode {
87+
if city == "" {
88+
prompt := &survey.Input{
89+
Message: "Enter the city name:",
90+
}
91+
err := survey.AskOne(prompt, &city, survey.Required)
92+
// handle interrupts
93+
if err != nil {
94+
exitCode = false
95+
break
96+
}
7197
}
72-
survey.AskOne(prompt, &city, survey.Required)
73-
}
7498

75-
if year == "" {
76-
prompt := &survey.Input{
77-
Message: "Enter the year:",
99+
if year == "" {
100+
prompt := &survey.Input{
101+
Message: "Enter the year:",
102+
}
103+
err := survey.AskOne(prompt, &year, survey.Required)
104+
// handle interrupts
105+
if err != nil {
106+
exitCode = false
107+
break
108+
}
78109
}
79-
survey.AskOne(prompt, &year, survey.Required)
80-
}
81-
speaker.ShowSpeakers(city, year)
110+
speaker.ShowSpeakers(city, year)
82111

112+
}
83113
return
84114
}

event/event.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,14 +168,20 @@ func CreateEvent(city, year string) (err error) {
168168
prompt := &survey.Input{
169169
Message: "Enter the city name:",
170170
}
171-
survey.AskOne(prompt, &city, survey.Required)
171+
cityErr := survey.AskOne(prompt, &city, survey.Required)
172+
if cityErr != nil {
173+
return
174+
}
172175
}
173176

174177
if year == "" {
175178
prompt := &survey.Input{
176179
Message: "Enter the year:",
177180
}
178-
survey.AskOne(prompt, &year, survey.Required)
181+
yearErr := survey.AskOne(prompt, &year, survey.Required)
182+
if yearErr != nil {
183+
return
184+
}
179185
}
180186

181187
if CheckEvent(city, year) {

0 commit comments

Comments
 (0)