Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 75bba11b authored by Andrew Walbran's avatar Andrew Walbran
Browse files

Output machine-readable file with all soong keywords.

Test: make, looked at output
Change-Id: Id0427e1a4f04515493c4dadb9e2856518e3a08dd
parent 225e4dba
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -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}}
`
)