Skip to content

Commit f403d24

Browse files
authored
Merge pull request #1265 from Adirio/scaffold-enhancement/split-fields-validation
Split injecting fields and validating files
2 parents a173def + db6e519 commit f403d24

File tree

3 files changed

+17
-13
lines changed

3 files changed

+17
-13
lines changed

pkg/scaffold/input/input.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,9 @@ type File interface {
158158
GetInput() (Input, error)
159159
}
160160

161-
// Validate validates input
162-
type Validate interface {
161+
// RequiresValidation is a file that requires validation
162+
type RequiresValidation interface {
163+
File
163164
// Validate returns true if the template has valid values
164165
Validate() error
165166
}

pkg/scaffold/scaffold.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ type Plugin interface {
7575
Pipe(u *model.Universe) error
7676
}
7777

78-
func (s *Scaffold) setFieldsAndValidate(t input.File) error {
78+
func (s *Scaffold) setFields(t input.File) {
7979
// Set boilerplate on templates
8080
if b, ok := t.(input.BoilerplatePath); ok {
8181
b.SetBoilerplatePath(s.BoilerplatePath)
@@ -98,12 +98,13 @@ func (s *Scaffold) setFieldsAndValidate(t input.File) error {
9898
if b, ok := t.(input.MultiGroup); ok {
9999
b.SetMultiGroup(s.Project.MultiGroup)
100100
}
101-
// Validate the template is ok
102-
if v, ok := t.(input.Validate); ok {
103-
if err := v.Validate(); err != nil {
104-
return err
105-
}
101+
}
102+
103+
func (_ *Scaffold) validate(file input.File) error {
104+
if reqValFile, ok := file.(input.RequiresValidation); ok {
105+
return reqValFile.Validate()
106106
}
107+
107108
return nil
108109
}
109110

@@ -234,8 +235,10 @@ func isAlreadyExistsError(e error) bool {
234235
// doFile scaffolds a single file
235236
func (s *Scaffold) buildFileModel(e input.File) (*model.File, error) {
236237
// Set common fields
237-
err := s.setFieldsAndValidate(e)
238-
if err != nil {
238+
s.setFields(e)
239+
240+
// Validate the file scaffold
241+
if err := s.validate(e); err != nil {
239242
return nil, err
240243
}
241244

pkg/scaffold/v2/controller/controller_suitetest.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"sigs.k8s.io/kubebuilder/pkg/scaffold/input"
2424
"sigs.k8s.io/kubebuilder/pkg/scaffold/resource"
2525
"sigs.k8s.io/kubebuilder/pkg/scaffold/util"
26-
"sigs.k8s.io/kubebuilder/pkg/scaffold/v2"
26+
scaffoldv2 "sigs.k8s.io/kubebuilder/pkg/scaffold/v2"
2727
"sigs.k8s.io/kubebuilder/pkg/scaffold/v2/internal"
2828
)
2929

@@ -140,8 +140,8 @@ Expect(err).NotTo(HaveOccurred())
140140

141141
err := internal.InsertStringsInFile(a.Path,
142142
map[string][]string{
143-
v2.ApiPkgImportScaffoldMarker: []string{ctrlImportCodeFragment, apiImportCodeFragment},
144-
v2.ApiSchemeScaffoldMarker: []string{addschemeCodeFragment},
143+
scaffoldv2.ApiPkgImportScaffoldMarker: []string{ctrlImportCodeFragment, apiImportCodeFragment},
144+
scaffoldv2.ApiSchemeScaffoldMarker: []string{addschemeCodeFragment},
145145
})
146146
if err != nil {
147147
return err

0 commit comments

Comments
 (0)