Merge "Output machine-readable file with all soong keywords." am: ed00a40686

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1699938

Change-Id: I7454f784af7fdd1318bff574c8dee428acee1986
This commit is contained in:
Andrew Walbran 2021-05-11 14:56:53 +00:00 committed by Automerger Merge Worker
commit 3c004705a6
1 changed files with 19 additions and 1 deletions

View File

@ -114,7 +114,10 @@ func writeDocs(ctx *android.Context, config interface{}, filename string) error
err = ioutil.WriteFile(filename, buf.Bytes(), 0666)
}
// Now, produce per-package module lists with detailed information.
// Now, produce per-package module lists with detailed information, and a list
// of keywords.
keywordsTmpl := template.Must(template.New("file").Parse(keywordsTemplate))
keywordsBuf := &bytes.Buffer{}
for _, pkg := range packages {
// We need a module name getter/setter function because I couldn't
// find a way to keep it in a variable defined within the template.
@ -141,7 +144,17 @@ func writeDocs(ctx *android.Context, config interface{}, filename string) error
if err != nil {
return err
}
err = keywordsTmpl.Execute(keywordsBuf, data)
if err != nil {
return err
}
}
// Write out list of keywords. This includes all module and property names, which is useful for
// building syntax highlighters.
keywordsFilename := filepath.Join(filepath.Dir(filename), "keywords.txt")
err = ioutil.WriteFile(keywordsFilename, keywordsBuf.Bytes(), 0666)
return err
}
@ -412,5 +425,10 @@ window.addEventListener('message', (e) => {
});
</script>
{{end}}
`
keywordsTemplate = `
{{range $moduleType := .Modules}}{{$moduleType.Name}}:{{range $property := $moduleType.Properties}}{{$property.Name}},{{end}}
{{end}}
`
)