summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEyal Posener <[email protected]>2020-05-10 06:04:42 +0300
committerEyal Posener <[email protected]>2020-05-10 06:04:42 +0300
commit1f0264a9ce8ad116058a834e517808b767d9b34b (patch)
tree2521a42e2facceb6488e6d236499a28f73983bf9
parent0b15fb4d6eceeba7d3a44ee4f7add42559774c4b (diff)
Use autogen
-rw-r--r--compflag/flags.go6
-rw-r--r--compflag/gen/flags.go.gotmpl5
-rw-r--r--compflag/gen/main.go37
-rw-r--r--go.mod3
-rw-r--r--go.sum6
5 files changed, 13 insertions, 44 deletions
diff --git a/compflag/flags.go b/compflag/flags.go
index 91b413a..10fd32a 100644
--- a/compflag/flags.go
+++ b/compflag/flags.go
@@ -1,3 +1,5 @@
+// Autogenerated by go run compflag/gen/main.go. DO NOT EDIT.
+
package compflag
import (
@@ -8,10 +10,6 @@ import (
"github.com/posener/complete/v2/predict"
)
-// Code auto generated with `go run ./gen`. DO NOT EDIT
-
-//go:generate go run ./gen
-
// String if a flag function for a flag of type string.
func String(name string, value string, usage string, options ...predict.Option) *string {
return CommandLine.String(name, value, usage, options...)
diff --git a/compflag/gen/flags.go.gotmpl b/compflag/gen/flags.go.gotmpl
index 9b65dd5..07dddc7 100644
--- a/compflag/gen/flags.go.gotmpl
+++ b/compflag/gen/flags.go.gotmpl
@@ -1,10 +1,5 @@
package compflag
-// Code auto generated with `go run ./gen`. DO NOT EDIT
-
-//go:generate go run ./gen
-
-
{{ range . }}
// {{ .Name }} if a flag function for a flag of type {{ .Type }}.
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, ".")]
-}
diff --git a/go.mod b/go.mod
index b6ab710..763ee48 100644
--- a/go.mod
+++ b/go.mod
@@ -2,7 +2,8 @@ module github.com/posener/complete/v2
require (
github.com/hashicorp/go-multierror v1.0.0
- github.com/posener/script v1.0.4
+ github.com/posener/autogen v0.0.2
+ github.com/posener/script v1.1.5
github.com/stretchr/testify v1.4.0
)
diff --git a/go.sum b/go.sum
index 7143318..2a45bbb 100644
--- a/go.sum
+++ b/go.sum
@@ -8,8 +8,10 @@ github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/posener/script v1.0.4 h1:nSuXW5ZdmFnQIueLB2s0qvs4oNsUloM1Zydzh75v42w=
-github.com/posener/script v1.0.4/go.mod h1:Rg3ijooqulo05aGLyGsHoLmIOUzHUVK19WVgrYBPU/E=
+github.com/posener/autogen v0.0.2 h1:Mw3UF18XT0eIG8Vu5SSFfHfNXNuuGowdyNP20UlB9pU=
+github.com/posener/autogen v0.0.2/go.mod h1:23ND5WRzjjNM+lOMUvy4WudgDikSK3Sm0rmaXAfnIWo=
+github.com/posener/script v1.1.5 h1:su+9YHNlevT+Hlq2Xul5skh5kYDIBE+x4xu+5mLDT9o=
+github.com/posener/script v1.1.5/go.mod h1:Rg3ijooqulo05aGLyGsHoLmIOUzHUVK19WVgrYBPU/E=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=