func()

in pkg/repo/write.go [32:60]


func (r *Repo) WriteKEP(kep *api.Proposal) error {
	b, err := yaml.Marshal(kep)
	if err != nil {
		return fmt.Errorf("KEP is invalid: %s", err)
	}

	sig := kep.OwningSIG
	kepName := kep.Name

	if sig == "" {
		return errors.New("owning SIG must be populated")
	}

	if kepName == "" {
		return errors.New("KEP name must be populated")
	}

	kepPath := filepath.Join(r.ProposalPath, sig, kepName)
	logrus.Infof("creating KEP directory: %s", kepPath)
	if err = os.MkdirAll(kepPath, os.ModePerm); err != nil {
		return fmt.Errorf("unable to create KEP path %s: %w", kepPath, err)
	}

	kepYamlPath := filepath.Join(kepPath, ProposalMetadataFilename)

	logrus.Infof("writing KEP metadata to %s", kepYamlPath)

	return ioutil.WriteFile(kepYamlPath, b, os.ModePerm)
}