// getGeneratedFiles returns a list of all automatically generated files in the repo. These include // docs, deep_copy, and conversions // // It would be 'better' to call this for every commit but that takes // a whole lot of time for almost always the same information, and if // our results are slightly wrong, who cares? Instead look for the // generated files once and if someone changed what files are generated // we'll size slightly wrong. No biggie. func (s *SizeMunger) getGeneratedFiles(config *config.MungeConfig) { if s.genFiles != nil { return } files := sets.NewString() prefixes := []string{} s.genFiles = &files s.genPrefixes = &prefixes file := s.generatedFilesFile if len(file) == 0 { glog.Infof("No --generated-files-config= supplied, applying no labels") return } fp, err := os.Open(file) if err != nil { glog.Errorf("Unable to open %q: %v", file, err) return } defer fp.Close() scanner := bufio.NewScanner(fp) for scanner.Scan() { line := scanner.Text() if strings.HasPrefix(line, "#") || line == "" { continue } fields := strings.Fields(line) if len(fields) != 2 { glog.Errorf("Invalid line in generated docs config %s: %q", file, line) continue } eType := fields[0] file := fields[1] if eType == "prefix" { prefixes = append(prefixes, file) } else if eType == "path" { files.Insert(file) } else if eType == "paths-from-repo" { docs, err := config.GetFileContents(file, "") if err != nil { continue } docSlice := strings.Split(docs, "\n") files.Insert(docSlice...) } else { glog.Errorf("Invalid line in generated docs config, unknown type: %s, %q", eType, line) continue } } if scanner.Err() != nil { glog.Errorf("Error scanning %s: %v", file, err) return } s.genFiles = &files s.genPrefixes = &prefixes return }
// getGeneratedFiles returns a list of all automatically generated files in the repo. These include // docs, deep_copy, and conversions func getGeneratedFiles(config *config.MungeConfig, c github.RepositoryCommit) []string { genFiles := []string{ "pkg/api/v1/deep_copy_generated.go", "pkg/api/deep_copy_generated.go", "pkg/expapi/v1/deep_copy_generated.go", "pkg/expapi/deep_copy_generated.go", "pkg/api/v1/conversion_generated.go", "pkg/expapi/v1/conversion_generated.go", "api/swagger-spec/resourceListing.json", "api/swagger-spec/version.json", "api/swagger-spec/api.json", "api/swagger-spec/v1.json", } docs, err := config.GetFileContents(".generated_docs", *c.SHA) if err != nil { docs = "" } docSlice := strings.Split(docs, "\n") genFiles = append(genFiles, docSlice...) return genFiles }