summaryrefslogtreecommitdiff
path: root/compflag/gen/main.go
diff options
context:
space:
mode:
authorEyal Posener <[email protected]>2020-05-10 06:06:40 +0300
committerGitHub <[email protected]>2020-05-10 06:06:40 +0300
commit5c05e978ea43e9992b04d9542bcab5f0b323a985 (patch)
tree2521a42e2facceb6488e6d236499a28f73983bf9 /compflag/gen/main.go
parent0b15fb4d6eceeba7d3a44ee4f7add42559774c4b (diff)
parent1f0264a9ce8ad116058a834e517808b767d9b34b (diff)
Merge pull request #123 from posener/autogen
Use autogen to generate code
Diffstat (limited to 'compflag/gen/main.go')
-rw-r--r--compflag/gen/main.go37
1 files changed, 5 insertions, 32 deletions
diff --git a/compflag/gen/main.go b/compflag/gen/main.go
index cbea96f..d5601ca 100644
--- a/compflag/gen/main.go
+++ b/compflag/gen/main.go
@@ -3,15 +3,12 @@ package main
import (
"log"
- "os"
- "path/filepath"
"strings"
- "text/template"
- "github.com/posener/script"
+ "github.com/posener/autogen"
)
-const tmplGlob = "gen/*.go.gotmpl"
+//go:generate go run .
type flag struct {
Name string
@@ -35,33 +32,9 @@ var flags = []flag{
{Name: "Duration", Type: "time.Duration"},
}
-var tmpl = template.Must(template.ParseGlob(tmplGlob))
-
func main() {
- for _, t := range tmpl.Templates() {
- fileName := outFileName(t.Name())
- f, err := os.Create(fileName)
- if err != nil {
- panic(err)
- }
- defer f.Close()
-
- log.Printf("Writing %s", fileName)
- err = t.Execute(f, flags)
- if err != nil {
- panic(err)
- }
-
- // Format the file.
- err = script.ExecHandleStderr(os.Stderr, "goimports", "-w", fileName).ToStdout()
- if err != nil {
- panic(err)
- }
+ err := autogen.Execute(flags)
+ if err != nil {
+ log.Fatal(err)
}
}
-
-func outFileName(templateName string) string {
- name := filepath.Base(templateName)
- // Remove .gotmpl suffix.
- return name[:strings.LastIndex(name, ".")]
-}