Skip to content

Commit 7d6dd24

Browse files
committed
refactor: split up module/template validation logic
1 parent ca47cfb commit 7d6dd24

File tree

2 files changed

+37
-7
lines changed

2 files changed

+37
-7
lines changed

cmd/readmevalidation/coderresources.go

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,10 @@ func parseCoderResourceReadme(resourceType string, rm readme) (coderResourceRead
269269
}
270270

271271
func parseCoderResourceReadmeFiles(resourceType string, rms []readme) (map[string]coderResourceReadme, error) {
272+
if !slices.Contains(supportedResourceTypes, resourceType) {
273+
return nil, xerrors.Errorf("cannot process unknown resource type %q", resourceType)
274+
}
275+
272276
resources := map[string]coderResourceReadme{}
273277
var yamlParsingErrs []error
274278
for _, rm := range rms {
@@ -311,6 +315,10 @@ func validateCoderResourceRelativeURLs(_ map[string]coderResourceReadme) error {
311315
}
312316

313317
func aggregateCoderResourceReadmeFiles(resourceType string) ([]readme, error) {
318+
if !slices.Contains(supportedResourceTypes, resourceType) {
319+
return nil, xerrors.Errorf("cannot process unknown resource type %q", resourceType)
320+
}
321+
314322
registryFiles, err := os.ReadDir(rootRegistryPath)
315323
if err != nil {
316324
return nil, err
@@ -360,26 +368,44 @@ func aggregateCoderResourceReadmeFiles(resourceType string) ([]readme, error) {
360368
return allReadmeFiles, nil
361369
}
362370

363-
func validateAllCoderResourceFilesOfType(resourceType string) error {
364-
if !slices.Contains(supportedResourceTypes, resourceType) {
365-
return xerrors.Errorf("resource type %q is not part of supported list [%s]", resourceType, strings.Join(supportedResourceTypes, ", "))
371+
func validateAllCoderModules() error {
372+
const resourceType = "modules"
373+
allReadmeFiles, err := aggregateCoderResourceReadmeFiles(resourceType)
374+
if err != nil {
375+
return err
366376
}
367377

378+
logger.Info(context.Background(), "processing template README files", "resource_type", resourceType, "num_files", len(allReadmeFiles))
379+
resources, err := parseCoderResourceReadmeFiles(resourceType, allReadmeFiles)
380+
if err != nil {
381+
return err
382+
}
383+
logger.Info(context.Background(), "processed README files as valid Coder resources", "resource_type", resourceType, "num_files", len(resources))
384+
385+
if err := validateCoderResourceRelativeURLs(resources); err != nil {
386+
return err
387+
}
388+
logger.Info(context.Background(), "all relative URLs for READMEs are valid", "resource_type", resourceType)
389+
return nil
390+
}
391+
392+
func validateAllCoderTemplates() error {
393+
const resourceType = "templates"
368394
allReadmeFiles, err := aggregateCoderResourceReadmeFiles(resourceType)
369395
if err != nil {
370396
return err
371397
}
372398

373-
logger.Info(context.Background(), "processing README files", "num_files", len(allReadmeFiles))
399+
logger.Info(context.Background(), "processing template README files", "resource_type", resourceType, "num_files", len(allReadmeFiles))
374400
resources, err := parseCoderResourceReadmeFiles(resourceType, allReadmeFiles)
375401
if err != nil {
376402
return err
377403
}
378-
logger.Info(context.Background(), "processed README files as valid Coder resources", "num_files", len(resources), "type", resourceType)
404+
logger.Info(context.Background(), "processed README files as valid Coder resources", "resource_type", resourceType, "num_files", len(resources))
379405

380406
if err := validateCoderResourceRelativeURLs(resources); err != nil {
381407
return err
382408
}
383-
logger.Info(context.Background(), "all relative URLs for READMEs are valid", "type", resourceType)
409+
logger.Info(context.Background(), "all relative URLs for READMEs are valid", "resource_type", resourceType)
384410
return nil
385411
}

cmd/readmevalidation/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ func main() {
3131
if err != nil {
3232
errs = append(errs, err)
3333
}
34-
err = validateAllCoderResourceFilesOfType("modules")
34+
err = validateAllCoderModules()
35+
if err != nil {
36+
errs = append(errs, err)
37+
}
38+
err = validateAllCoderTemplates()
3539
if err != nil {
3640
errs = append(errs, err)
3741
}

0 commit comments

Comments
 (0)