From 60325f349d2105d9c602bfa7b1c40a0f322c8280 Mon Sep 17 00:00:00 2001 From: Andres Taylor Date: Tue, 27 Sep 2022 11:19:16 +0200 Subject: [PATCH] [asthelpergen] Migrate to pflags (#11363) Signed-off-by: Andres Taylor Signed-off-by: Andres Taylor --- Makefile | 5 ++++- go/tools/asthelpergen/asthelpergen.go | 13 ------------ go/tools/asthelpergen/main/main.go | 29 +++++++++++++++------------ misc/git/hooks/asthelpers | 2 +- 4 files changed, 21 insertions(+), 28 deletions(-) diff --git a/Makefile b/Makefile index b65e486a90e..6b556d18e88 100644 --- a/Makefile +++ b/Makefile @@ -183,7 +183,10 @@ visitor: asthelpergen echo "make visitor has been replaced by make asthelpergen" asthelpergen: - go run ./go/tools/asthelpergen/main -in ./go/vt/sqlparser -iface vitess.io/vitess/go/vt/sqlparser.SQLNode -except "*ColName" + go run ./go/tools/asthelpergen/main \ + --in ./go/vt/sqlparser \ + --iface vitess.io/vitess/go/vt/sqlparser.SQLNode \ + --except "*ColName" sizegen: go run ./go/tools/sizegen/sizegen.go \ diff --git a/go/tools/asthelpergen/asthelpergen.go b/go/tools/asthelpergen/asthelpergen.go index bcfe589dc08..1e6e7a68be2 100644 --- a/go/tools/asthelpergen/asthelpergen.go +++ b/go/tools/asthelpergen/asthelpergen.go @@ -159,19 +159,6 @@ func (gen *astHelperGen) GenerateCode() (map[string]*jen.File, error) { return result, nil } -// TypePaths are the packages -type TypePaths []string - -func (t *TypePaths) String() string { - return fmt.Sprintf("%v", *t) -} - -// Set adds the package path -func (t *TypePaths) Set(path string) error { - *t = append(*t, path) - return nil -} - // VerifyFilesOnDisk compares the generated results from the codegen against the files that // currently exist on disk and returns any mismatches func VerifyFilesOnDisk(result map[string]*jen.File) (errors []error) { diff --git a/go/tools/asthelpergen/main/main.go b/go/tools/asthelpergen/main/main.go index 9b2f630304e..2a691291027 100644 --- a/go/tools/asthelpergen/main/main.go +++ b/go/tools/asthelpergen/main/main.go @@ -17,33 +17,36 @@ limitations under the License. package main import ( - "flag" "log" "os" - "vitess.io/vitess/go/tools/goimports" + "github.com/spf13/pflag" + + "vitess.io/vitess/go/tools/asthelpergen" - . "vitess.io/vitess/go/tools/asthelpergen" + "vitess.io/vitess/go/tools/goimports" ) func main() { - var patterns TypePaths - var generate, except string - var verify bool + var ( + patterns []string + generate, except string + verify bool + ) - flag.Var(&patterns, "in", "Go packages to load the generator") - flag.StringVar(&generate, "iface", "", "Root interface generate rewriter for") - flag.BoolVar(&verify, "verify", false, "ensure that the generated files are correct") - flag.StringVar(&except, "except", "", "don't deep clone these types") - flag.Parse() + pflag.StringSliceVar(&patterns, "in", nil, "Go packages to load the generator") + pflag.StringVar(&generate, "iface", "", "Root interface generate rewriter for") + pflag.BoolVar(&verify, "verify", false, "ensure that the generated files are correct") + pflag.StringVar(&except, "except", "", "don't deep clone these types") + pflag.Parse() - result, err := GenerateASTHelpers(patterns, generate, except) + result, err := asthelpergen.GenerateASTHelpers(patterns, generate, except) if err != nil { log.Fatal(err) } if verify { - for _, err := range VerifyFilesOnDisk(result) { + for _, err := range asthelpergen.VerifyFilesOnDisk(result) { log.Fatal(err) } log.Printf("%d files OK", len(result)) diff --git a/misc/git/hooks/asthelpers b/misc/git/hooks/asthelpers index cd8a9ac547d..371f31d2ddc 100755 --- a/misc/git/hooks/asthelpers +++ b/misc/git/hooks/asthelpers @@ -15,4 +15,4 @@ # this script, which should run before committing code, makes sure that the visitor is re-generated when the ast changes -go run ./go/tools/asthelpergen/main -in ./go/vt/sqlparser -verify=true -iface vitess.io/vitess/go/vt/sqlparser.SQLNode -except "*ColName" \ No newline at end of file +go run ./go/tools/asthelpergen/main --in ./go/vt/sqlparser --verify=true --iface vitess.io/vitess/go/vt/sqlparser.SQLNode --except "*ColName" \ No newline at end of file