@@ -77,46 +77,46 @@ func (pr *ParameterResolver) Resolve(inv *clibase.Invocation, action WorkspaceCL
77
77
}
78
78
79
79
func (pr * ParameterResolver ) resolveWithParametersMapFile (resolved []codersdk.WorkspaceBuildParameter ) []codersdk.WorkspaceBuildParameter {
80
+ next:
80
81
for name , value := range pr .richParametersFile {
81
82
for i , r := range resolved {
82
83
if r .Name == name {
83
84
resolved [i ].Value = value
84
- goto done
85
+ continue next
85
86
}
86
87
}
87
88
88
89
resolved = append (resolved , codersdk.WorkspaceBuildParameter {
89
90
Name : name ,
90
91
Value : value ,
91
92
})
92
- done:
93
93
}
94
94
return resolved
95
95
}
96
96
97
97
func (pr * ParameterResolver ) resolveWithCommandLineOrEnv (resolved []codersdk.WorkspaceBuildParameter ) []codersdk.WorkspaceBuildParameter {
98
+ nextRichParameter:
98
99
for _ , richParameter := range pr .richParameters {
99
100
for i , r := range resolved {
100
101
if r .Name == richParameter .Name {
101
102
resolved [i ].Value = richParameter .Value
102
- goto richParameterDone
103
+ continue nextRichParameter
103
104
}
104
105
}
105
106
106
107
resolved = append (resolved , richParameter )
107
- richParameterDone:
108
108
}
109
109
110
+ nextBuildOption:
110
111
for _ , buildOption := range pr .buildOptions {
111
112
for i , r := range resolved {
112
113
if r .Name == buildOption .Name {
113
114
resolved [i ].Value = buildOption .Value
114
- goto buildOptionDone
115
+ continue nextBuildOption
115
116
}
116
117
}
117
118
118
119
resolved = append (resolved , buildOption )
119
- buildOptionDone:
120
120
}
121
121
return resolved
122
122
}
@@ -126,6 +126,7 @@ func (pr *ParameterResolver) resolveWithLastBuildParameters(resolved []codersdk.
126
126
return resolved // don't pull parameters from last build
127
127
}
128
128
129
+ next:
129
130
for _ , buildParameter := range pr .lastBuildParameters {
130
131
tvp := findTemplateVersionParameter (buildParameter , templateVersionParameters )
131
132
if tvp == nil {
@@ -143,12 +144,11 @@ func (pr *ParameterResolver) resolveWithLastBuildParameters(resolved []codersdk.
143
144
for i , r := range resolved {
144
145
if r .Name == buildParameter .Name {
145
146
resolved [i ].Value = buildParameter .Value
146
- goto done
147
+ continue next
147
148
}
148
149
}
149
150
150
151
resolved = append (resolved , buildParameter )
151
- done:
152
152
}
153
153
return resolved
154
154
}
@@ -160,7 +160,7 @@ func (pr *ParameterResolver) verifyConstraints(resolved []codersdk.WorkspaceBuil
160
160
return xerrors .Errorf ("parameter %q is not present in the template" , r .Name )
161
161
}
162
162
163
- if tvp .Ephemeral && ! pr .promptBuildOptions && len ( pr .buildOptions ) == 0 {
163
+ if tvp .Ephemeral && ! pr .promptBuildOptions && findWorkspaceBuildParameter ( tvp . Name , pr .buildOptions ) == nil {
164
164
return xerrors .Errorf ("ephemeral parameter %q can be used only with --build-options or --build-option flag" , r .Name )
165
165
}
166
166
@@ -173,12 +173,12 @@ func (pr *ParameterResolver) verifyConstraints(resolved []codersdk.WorkspaceBuil
173
173
174
174
func (pr * ParameterResolver ) resolveWithInput (resolved []codersdk.WorkspaceBuildParameter , inv * clibase.Invocation , action WorkspaceCLIAction , templateVersionParameters []codersdk.TemplateVersionParameter ) ([]codersdk.WorkspaceBuildParameter , error ) {
175
175
for _ , tvp := range templateVersionParameters {
176
- p := findWorkspaceBuildParameter (tvp , resolved )
176
+ p := findWorkspaceBuildParameter (tvp . Name , resolved )
177
177
if p != nil {
178
178
continue
179
179
}
180
180
181
- firstTimeUse := pr .isFirstTimeUse (tvp )
181
+ firstTimeUse := pr .isFirstTimeUse (tvp . Name )
182
182
183
183
if (tvp .Ephemeral && pr .promptBuildOptions ) ||
184
184
tvp .Required ||
@@ -201,8 +201,8 @@ func (pr *ParameterResolver) resolveWithInput(resolved []codersdk.WorkspaceBuild
201
201
return resolved , nil
202
202
}
203
203
204
- func (pr * ParameterResolver ) isFirstTimeUse (tvp codersdk. TemplateVersionParameter ) bool {
205
- return findWorkspaceBuildParameter (tvp , pr .lastBuildParameters ) == nil
204
+ func (pr * ParameterResolver ) isFirstTimeUse (parameterName string ) bool {
205
+ return findWorkspaceBuildParameter (parameterName , pr .lastBuildParameters ) == nil
206
206
}
207
207
208
208
func findTemplateVersionParameter (workspaceBuildParameter codersdk.WorkspaceBuildParameter , templateVersionParameters []codersdk.TemplateVersionParameter ) * codersdk.TemplateVersionParameter {
@@ -214,9 +214,9 @@ func findTemplateVersionParameter(workspaceBuildParameter codersdk.WorkspaceBuil
214
214
return nil
215
215
}
216
216
217
- func findWorkspaceBuildParameter (tvp codersdk. TemplateVersionParameter , params []codersdk.WorkspaceBuildParameter ) * codersdk.WorkspaceBuildParameter {
217
+ func findWorkspaceBuildParameter (parameterName string , params []codersdk.WorkspaceBuildParameter ) * codersdk.WorkspaceBuildParameter {
218
218
for _ , p := range params {
219
- if p .Name == tvp . Name {
219
+ if p .Name == parameterName {
220
220
return & p
221
221
}
222
222
}
0 commit comments