// Copyright 2017 Google Inc. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package main import ( "android/soong/android" "bytes" "html/template" "io/ioutil" "github.com/google/blueprint/bootstrap" ) func writeDocs(ctx *android.Context, filename string) error { moduleTypeList, err := bootstrap.ModuleTypeDocs(ctx.Context) if err != nil { return err } buf := &bytes.Buffer{} unique := 0 tmpl, err := template.New("file").Funcs(map[string]interface{}{ "unique": func() int { unique++ return unique }}).Parse(fileTemplate) if err != nil { return err } err = tmpl.Execute(buf, moduleTypeList) if err != nil { return err } err = ioutil.WriteFile(filename, buf.Bytes(), 0666) if err != nil { return err } return nil } const ( fileTemplate = ` Build Docs

Build Docs

{{range .}} {{ $collapseIndex := unique }}

{{.Text}}

{{range .PropertyStructs}}

{{.Text}}

{{template "properties" .Properties}} {{end}}
{{end}}
{{define "properties"}}
{{range .}} {{$collapseIndex := unique}} {{if .Properties}}

{{.Text}}

{{range .OtherTexts}}

{{.}}

{{end}} {{template "properties" .Properties}}
{{else}}

{{.Name}}{{range .OtherNames}}, {{.}}{{end}}

{{.Text}}

{{range .OtherTexts}}

{{.}}

{{end}}

Type: {{.Type}}

{{if .Default}}

Default: {{.Default}}

{{end}}
{{end}} {{end}}
{{end}} ` )