@@ -73,17 +73,20 @@ func (w *Wizard) Parse(availableModules string) {
7373// required: bool
7474// dependency: Add dependency function to validate if that argument will be added or not
7575func (w * Wizard ) AddStringVar (callback * string , name , defaultValue , usage string , required bool , dependency func () bool ) {
76- w .Arguments = append (w .Arguments , argument {
77- name : name ,
78- inputFunction : func () {
79- if * callback != "" {
80- defaultValue = * callback
81- }
82-
83- w .newStringPromptWithDefault (callback , defaultValue , usage , required )
84- },
76+ arg := argument {
77+ name : name ,
8578 dependency : dependency ,
86- })
79+ }
80+
81+ arg .inputFunction = func () {
82+ if * callback != "" {
83+ defaultValue = * callback
84+ }
85+
86+ w .newStringPromptWithDefault (callback , defaultValue , usage , required )
87+ }
88+
89+ w .Arguments = append (w .Arguments , arg )
8790}
8891
8992// AddSliceVarFromString reads a single string from stdin. This string will be separated by ',' and the resulting slice will be returned
@@ -95,20 +98,23 @@ func (w *Wizard) AddStringVar(callback *string, name, defaultValue, usage string
9598// required: bool
9699// dependency: Add dependency function to validate if that argument will be added or not
97100func (w * Wizard ) AddSliceVarFromString (callback * []string , name string , defaultValue []string , usage string , required bool , dependency func () bool ) {
98- w .Arguments = append (w .Arguments , argument {
99- name : name ,
100- inputFunction : func () {
101- if len (* callback ) > 0 {
102- defaultValue = * callback
103- }
101+ arg := argument {
102+ name : name ,
103+ dependency : dependency ,
104+ }
104105
105- var input string
106+ arg .inputFunction = func () {
107+ if len (* callback ) > 0 {
108+ defaultValue = * callback
109+ }
106110
107- w .newStringPromptWithDefault (& input , strings .Join (defaultValue , "," ), usage , required )
108- * callback = strings .Split (strings .ReplaceAll (input , " " , "" ), "," )
109- },
110- dependency : dependency ,
111- })
111+ var input string
112+
113+ w .newStringPromptWithDefault (& input , strings .Join (defaultValue , "," ), usage , required )
114+ * callback = strings .Split (strings .ReplaceAll (input , " " , "" ), "," )
115+ }
116+
117+ w .Arguments = append (w .Arguments , arg )
112118}
113119
114120// AddBoolVar adds argument for a boolean variable
@@ -119,13 +125,16 @@ func (w *Wizard) AddSliceVarFromString(callback *[]string, name string, defaultV
119125// usage: usage string
120126// dependency: Add dependency function to validate if that argument will be added or not
121127func (w * Wizard ) AddBoolVar (callback * bool , name string , defaultValue bool , usage string , dependency func () bool ) {
122- w .Arguments = append (w .Arguments , argument {
123- name : name ,
124- inputFunction : func () {
125- w .newBoolPrompt (callback , defaultValue , usage )
126- },
128+ arg := argument {
129+ name : name ,
127130 dependency : dependency ,
128- })
131+ }
132+
133+ arg .inputFunction = func () {
134+ w .newBoolPrompt (callback , defaultValue , usage )
135+ }
136+
137+ w .Arguments = append (w .Arguments , arg )
129138}
130139
131140// AddStringSliceVar adds argument for a slice of strings.
@@ -170,30 +179,34 @@ func (w *Wizard) AddStringSliceVar(callback *[]string, name string, defaultValue
170179}
171180
172181func (w * Wizard ) AddIcingaEndpoints (callback * []icingaapi.Endpoint , name , usage string , dependency func () bool ) {
173- w .Arguments = append (w .Arguments , argument {
174- name : name ,
175- inputFunction : func () {
176- // Ask if endpoint should be added. If not, return
177- var collect bool
178- w .newBoolPrompt (& collect , true , usage )
179-
180- if ! collect {
181- return
182- }
182+ arg := argument {
183+ name : name ,
184+ dependency : dependency ,
185+ }
186+
187+ arg .inputFunction = func () {
188+ // Ask if endpoint should be added. If not, return
189+ var collect bool
183190
184- var endpoints []icingaapi. Endpoint
191+ w . newBoolPrompt ( & collect , true , usage )
185192
186- for collect {
187- e := w . newIcinga2EndpointPrompt ()
188- endpoints = append ( endpoints , e )
193+ if ! collect {
194+ return
195+ }
189196
190- w .newBoolPrompt (& collect , false , "Collect more Icinga 2 API endpoints?" )
191- }
197+ var endpoints []icingaapi.Endpoint
192198
193- * callback = endpoints
194- },
195- dependency : dependency ,
196- })
199+ for collect {
200+ e := w .newIcinga2EndpointPrompt ()
201+ endpoints = append (endpoints , e )
202+
203+ w .newBoolPrompt (& collect , false , "Collect more Icinga 2 API endpoints?" )
204+ }
205+
206+ * callback = endpoints
207+ }
208+
209+ w .Arguments = append (w .Arguments , arg )
197210}
198211
199212// newStringPromptWithDefault creates a new stdout / stdin prompt for a string
0 commit comments