github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/cmd/depsgen/generator.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  	"text/template"
     7  )
     8  
     9  func generate(c *Config) error {
    10  	f, err := os.Create(c.Out)
    11  	if err != nil {
    12  		return fmt.Errorf("create %s: %v", c.Out, err)
    13  	}
    14  	defer f.Close()
    15  
    16  	t := template.Must(template.New(c.Name + "_deps.bzl").Option("missingkey=error").Parse(depsBzl))
    17  
    18  	deps := collectDeps(c.Deps)
    19  	loads := collectLoads(deps)
    20  	data := &templateData{
    21  		Name:  c.Name,
    22  		Deps:  deps,
    23  		Loads: loads,
    24  	}
    25  
    26  	if err := t.Execute(f, data); err != nil {
    27  		return fmt.Errorf("template %s: %v", c.Out, err)
    28  	}
    29  
    30  	return nil
    31  }