func()

in cmd/kazel/generator.go [136:178]


func (v *Vendorer) walkGenerated() (bool, error) {
	if v.cfg.K8sCodegenBzlFile == "" {
		return false, nil
	}
	// only include the specified tags
	requestedTags := make(map[string]bool)
	for _, tag := range v.cfg.K8sCodegenTags {
		requestedTags[tag] = true
	}
	tagsValuesPkgs, tagsPkgsValues, err := v.findGeneratorTags(".", requestedTags)
	if err != nil {
		return false, err
	}

	f := &build.File{
		Path: v.cfg.K8sCodegenBzlFile,
	}
	addCommentBefore(f, "#################################################")
	addCommentBefore(f, "# # # # # # # # # # # # # # # # # # # # # # # # #")
	addCommentBefore(f, "This file is autogenerated by kazel. DO NOT EDIT.")
	addCommentBefore(f, "# # # # # # # # # # # # # # # # # # # # # # # # #")
	addCommentBefore(f, "#################################################")
	addCommentBefore(f, "")

	f.Stmt = append(f.Stmt, varExpr("go_prefix", "The go prefix passed to kazel", v.cfg.GoPrefix))
	f.Stmt = append(f.Stmt, varExpr("kazel_configured_tags", "The list of codegen tags kazel is configured to find", v.cfg.K8sCodegenTags))
	f.Stmt = append(f.Stmt, varExpr("tags_values_pkgs", "tags_values_pkgs is a dictionary mapping {k8s build tag: {tag value: [pkgs including that tag:value]}}", flattened(tagsValuesPkgs)))
	f.Stmt = append(f.Stmt, varExpr("tags_pkgs_values", "tags_pkgs_values is a dictionary mapping {k8s build tag: {pkg: [tag values in pkg]}}", flattened(tagsPkgsValues)))

	var boilerplate []byte
	if v.cfg.K8sCodegenBoilerplateFile != "" {
		boilerplate, err = ioutil.ReadFile(v.cfg.K8sCodegenBoilerplateFile)
		if err != nil {
			return false, err
		}
	}
	// Open existing file to use in diff mode.
	_, err = os.Stat(f.Path)
	if err != nil && !os.IsNotExist(err) {
		return false, err
	}
	return writeFile(f.Path, f, boilerplate, !os.IsNotExist(err), v.dryRun)
}