in images/controller/pkg/builder.go [231:259]
func GetObjectTypes(srcDir string) ([]string, error) {
resp := make([]string, 0)
cmd := exec.Command("sh", "-o", "pipefail", "-c", fmt.Sprintf("kustomize build %s", srcDir))
cmd.Dir = srcDir
stdoutStderr, err := cmd.CombinedOutput()
if err != nil {
return resp, fmt.Errorf("error running kustomize build on directory %s: %v\n%s", srcDir, err, stdoutStderr)
}
kindMap := make(map[string]int, 0)
scanner := bufio.NewScanner(bytes.NewReader(stdoutStderr))
kindPat := regexp.MustCompile(`^kind: (?P<kind>.*)`)
for scanner.Scan() {
line := scanner.Text()
match := kindPat.FindStringSubmatch(line)
if len(match) > 1 {
kind := match[1]
kindMap[kind] += 1
}
}
for k := range kindMap {
resp = append(resp, k)
}
sort.Strings(resp)
return resp, nil
}