@@ -77,46 +77,46 @@ func (pr *ParameterResolver) Resolve(inv *clibase.Invocation, action WorkspaceCL
7777}
7878
7979func (pr * ParameterResolver )resolveWithParametersMapFile (resolved []codersdk.WorkspaceBuildParameter ) []codersdk.WorkspaceBuildParameter {
80+ next:
8081for name ,value := range pr .richParametersFile {
8182for i ,r := range resolved {
8283if r .Name == name {
8384resolved [i ].Value = value
84- goto done
85+ continue next
8586}
8687}
8788
8889resolved = append (resolved , codersdk.WorkspaceBuildParameter {
8990Name :name ,
9091Value :value ,
9192})
92- done:
9393}
9494return resolved
9595}
9696
9797func (pr * ParameterResolver )resolveWithCommandLineOrEnv (resolved []codersdk.WorkspaceBuildParameter ) []codersdk.WorkspaceBuildParameter {
98+ nextRichParameter:
9899for _ ,richParameter := range pr .richParameters {
99100for i ,r := range resolved {
100101if r .Name == richParameter .Name {
101102resolved [i ].Value = richParameter .Value
102- goto richParameterDone
103+ continue nextRichParameter
103104}
104105}
105106
106107resolved = append (resolved ,richParameter )
107- richParameterDone:
108108}
109109
110+ nextBuildOption:
110111for _ ,buildOption := range pr .buildOptions {
111112for i ,r := range resolved {
112113if r .Name == buildOption .Name {
113114resolved [i ].Value = buildOption .Value
114- goto buildOptionDone
115+ continue nextBuildOption
115116}
116117}
117118
118119resolved = append (resolved ,buildOption )
119- buildOptionDone:
120120}
121121return resolved
122122}
@@ -126,6 +126,7 @@ func (pr *ParameterResolver) resolveWithLastBuildParameters(resolved []codersdk.
126126return resolved // don't pull parameters from last build
127127}
128128
129+ next:
129130for _ ,buildParameter := range pr .lastBuildParameters {
130131tvp := findTemplateVersionParameter (buildParameter ,templateVersionParameters )
131132if tvp == nil {
@@ -143,12 +144,11 @@ func (pr *ParameterResolver) resolveWithLastBuildParameters(resolved []codersdk.
143144for i ,r := range resolved {
144145if r .Name == buildParameter .Name {
145146resolved [i ].Value = buildParameter .Value
146- goto done
147+ continue next
147148}
148149}
149150
150151resolved = append (resolved ,buildParameter )
151- done:
152152}
153153return resolved
154154}
@@ -160,7 +160,7 @@ func (pr *ParameterResolver) verifyConstraints(resolved []codersdk.WorkspaceBuil
160160return xerrors .Errorf ("parameter %q is not present in the template" ,r .Name )
161161}
162162
163- if tvp .Ephemeral && ! pr .promptBuildOptions && len ( pr .buildOptions )== 0 {
163+ if tvp .Ephemeral && ! pr .promptBuildOptions && findWorkspaceBuildParameter ( tvp . Name , pr .buildOptions )== nil {
164164return xerrors .Errorf ("ephemeral parameter %q can be used only with --build-options or --build-option flag" ,r .Name )
165165}
166166
@@ -173,12 +173,12 @@ func (pr *ParameterResolver) verifyConstraints(resolved []codersdk.WorkspaceBuil
173173
174174func (pr * ParameterResolver )resolveWithInput (resolved []codersdk.WorkspaceBuildParameter ,inv * clibase.Invocation ,action WorkspaceCLIAction ,templateVersionParameters []codersdk.TemplateVersionParameter ) ([]codersdk.WorkspaceBuildParameter ,error ) {
175175for _ ,tvp := range templateVersionParameters {
176- p := findWorkspaceBuildParameter (tvp ,resolved )
176+ p := findWorkspaceBuildParameter (tvp . Name ,resolved )
177177if p != nil {
178178continue
179179}
180180
181- firstTimeUse := pr .isFirstTimeUse (tvp )
181+ firstTimeUse := pr .isFirstTimeUse (tvp . Name )
182182
183183if (tvp .Ephemeral && pr .promptBuildOptions )||
184184tvp .Required ||
@@ -201,8 +201,8 @@ func (pr *ParameterResolver) resolveWithInput(resolved []codersdk.WorkspaceBuild
201201return resolved ,nil
202202}
203203
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
206206}
207207
208208func findTemplateVersionParameter (workspaceBuildParameter codersdk.WorkspaceBuildParameter ,templateVersionParameters []codersdk.TemplateVersionParameter )* codersdk.TemplateVersionParameter {
@@ -214,9 +214,9 @@ func findTemplateVersionParameter(workspaceBuildParameter codersdk.WorkspaceBuil
214214return nil
215215}
216216
217- func findWorkspaceBuildParameter (tvp codersdk. TemplateVersionParameter ,params []codersdk.WorkspaceBuildParameter )* codersdk.WorkspaceBuildParameter {
217+ func findWorkspaceBuildParameter (parameterName string ,params []codersdk.WorkspaceBuildParameter )* codersdk.WorkspaceBuildParameter {
218218for _ ,p := range params {
219- if p .Name == tvp . Name {
219+ if p .Name == parameterName {
220220return & p
221221}
222222}