@@ -27,7 +27,6 @@ import (
27
27
"k8s.io/apimachinery/pkg/runtime/schema"
28
28
"k8s.io/apimachinery/pkg/runtime/serializer"
29
29
30
- "github.com/zegl/kube-score/config"
31
30
ks "github.com/zegl/kube-score/domain"
32
31
"github.com/zegl/kube-score/parser/internal"
33
32
internalcronjob "github.com/zegl/kube-score/parser/internal/cronjob"
@@ -40,15 +39,25 @@ import (
40
39
type Parser struct {
41
40
scheme * runtime.Scheme
42
41
codecs serializer.CodecFactory
42
+ config * Config
43
+ }
44
+
45
+ type Config struct {
46
+ VerboseOutput int
43
47
}
44
48
45
49
type schemaAdderFunc func (scheme * runtime.Scheme ) error
46
50
47
- func New () (* Parser , error ) {
51
+ func New (config * Config ) (* Parser , error ) {
52
+ if config == nil {
53
+ config = & Config {}
54
+ }
55
+
48
56
scheme := runtime .NewScheme ()
49
57
p := & Parser {
50
58
scheme : scheme ,
51
59
codecs : serializer .NewCodecFactory (scheme ),
60
+ config : config ,
52
61
}
53
62
if err := p .addToScheme (); err != nil {
54
63
return nil , fmt .Errorf ("failed to init: %w" , err )
@@ -146,10 +155,10 @@ func Empty() ks.AllTypes {
146
155
return & parsedObjects {}
147
156
}
148
157
149
- func (p * Parser ) ParseFiles (cnf config. Configuration ) (ks.AllTypes , error ) {
158
+ func (p * Parser ) ParseFiles (files []ks. NamedReader ) (ks.AllTypes , error ) {
150
159
s := & parsedObjects {}
151
160
152
- for _ , namedReader := range cnf . AllFiles {
161
+ for _ , namedReader := range files {
153
162
fullFile , err := io .ReadAll (namedReader )
154
163
if err != nil {
155
164
return nil , err
@@ -169,7 +178,7 @@ func (p *Parser) ParseFiles(cnf config.Configuration) (ks.AllTypes, error) {
169
178
for _ , fileContents := range bytes .Split (fullFile , []byte ("\n ---\n " )) {
170
179
171
180
if len (bytes .TrimSpace (fileContents )) > 0 {
172
- if err := p .detectAndDecode (cnf , s , namedReader .Name (), offset , fileContents ); err != nil {
181
+ if err := p .detectAndDecode (s , namedReader .Name (), offset , fileContents ); err != nil {
173
182
return nil , err
174
183
}
175
184
}
@@ -181,7 +190,7 @@ func (p *Parser) ParseFiles(cnf config.Configuration) (ks.AllTypes, error) {
181
190
return s , nil
182
191
}
183
192
184
- func (p * Parser ) detectAndDecode (cnf config. Configuration , s * parsedObjects , fileName string , fileOffset int , raw []byte ) error {
193
+ func (p * Parser ) detectAndDecode (s * parsedObjects , fileName string , fileOffset int , raw []byte ) error {
185
194
var detect detectKind
186
195
err := yaml .Unmarshal (raw , & detect )
187
196
if err != nil {
@@ -198,15 +207,15 @@ func (p *Parser) detectAndDecode(cnf config.Configuration, s *parsedObjects, fil
198
207
return err
199
208
}
200
209
for _ , listItem := range list .Items {
201
- err := p .detectAndDecode (cnf , s , fileName , fileOffset , listItem .Raw )
210
+ err := p .detectAndDecode (s , fileName , fileOffset , listItem .Raw )
202
211
if err != nil {
203
212
return err
204
213
}
205
214
}
206
215
return nil
207
216
}
208
217
209
- err = p .decodeItem (cnf , s , detectedVersion , fileName , fileOffset , raw )
218
+ err = p .decodeItem (s , detectedVersion , fileName , fileOffset , raw )
210
219
if err != nil {
211
220
return err
212
221
}
@@ -241,7 +250,7 @@ func detectFileLocation(fileName string, fileOffset int, fileContents []byte) ks
241
250
}
242
251
}
243
252
244
- func (p * Parser ) decodeItem (cnf config. Configuration , s * parsedObjects , detectedVersion schema.GroupVersionKind , fileName string , fileOffset int , fileContents []byte ) error {
253
+ func (p * Parser ) decodeItem (s * parsedObjects , detectedVersion schema.GroupVersionKind , fileName string , fileOffset int , fileContents []byte ) error {
245
254
addPodSpeccer := func (ps ks.PodSpecer ) {
246
255
s .podspecers = append (s .podspecers , ps )
247
256
s .bothMetas = append (s .bothMetas , ks.BothMeta {
@@ -418,7 +427,7 @@ func (p *Parser) decodeItem(cnf config.Configuration, s *parsedObjects, detected
418
427
s .bothMetas = append (s .bothMetas , ks.BothMeta {TypeMeta : hpa .TypeMeta , ObjectMeta : hpa .ObjectMeta , FileLocationer : h })
419
428
420
429
default :
421
- if cnf .VerboseOutput > 1 {
430
+ if p . config .VerboseOutput > 1 {
422
431
log .Printf ("Unknown datatype: %s" , detectedVersion .String ())
423
432
}
424
433
}
0 commit comments