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 }