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)
}