func validateFile()

in pkg/repo/validate.go [120:142]


func validateFile(r *Repo, prrDir, filename string) error {
	kepFile, err := os.Open(filename)
	if err != nil {
		return &fatalValidationError{Err: errors.Wrapf(err, "could not open file %s", filename)}
	}
	defer kepFile.Close()

	logrus.Infof("parsing %s", filename)
	kepHandler, prrHandler := r.KEPHandler, r.PRRHandler
	kep, kepParseErr := kepHandler.Parse(kepFile)
	if kepParseErr != nil {
		return errors.Wrap(kepParseErr, "parsing KEP file")
	}
	kep.Filename = filename

	// TODO: This shouldn't be required once we push the errors into the
	//       parser struct
	if kep.Error != nil {
		return &fatalValidationError{Err: errors.Wrapf(kep.Error, "%v has an error", filename)}
	}

	return kepval.ValidatePRR(kep, prrHandler, prrDir)
}