diff --git a/cli.go b/cli.go index b3b864c..28ad058 100644 --- a/cli.go +++ b/cli.go @@ -22,4 +22,4 @@ // } package cli -//go:generate go run cmd/urfave-cli-genflags/main.go +//go:generate make -C cmd/urfave-cli-genflags run diff --git a/cmd/urfave-cli-genflags/Makefile b/cmd/urfave-cli-genflags/Makefile index 3b11415..95b932d 100644 --- a/cmd/urfave-cli-genflags/Makefile +++ b/cmd/urfave-cli-genflags/Makefile @@ -19,3 +19,7 @@ smoke-test: build .PHONY: show-cover show-cover: go tool cover -func main.coverprofile + +.PHONY: run +run: build + ./urfave-cli-genflags diff --git a/cmd/urfave-cli-genflags/main.go b/cmd/urfave-cli-genflags/main.go index 1b0fe53..7f8deb6 100644 --- a/cmd/urfave-cli-genflags/main.go +++ b/cmd/urfave-cli-genflags/main.go @@ -4,6 +4,7 @@ import ( "bytes" "context" _ "embed" + "fmt" "log" "os" "os/exec" @@ -37,6 +38,9 @@ var ( func sh(ctx context.Context, exe string, args ...string) (string, error) { cmd := exec.CommandContext(ctx, exe, args...) cmd.Stderr = os.Stderr + + fmt.Fprintf(os.Stderr, "# ---> %s\n", cmd) + outBytes, err := cmd.Output() return string(outBytes), err } @@ -89,10 +93,18 @@ func main() { Aliases: []string{"N"}, Value: "cli.", }, + &cli.PathFlag{ + Name: "goimports", + Value: filepath.Join(top, ".local/bin/goimports"), + }, }, Action: runGenFlags, } + if err := os.Chdir(top); err != nil { + log.Fatal(err) + } + if err := app.RunContext(ctx, os.Args); err != nil { log.Fatal(err) } @@ -163,11 +175,11 @@ func runGenFlags(cCtx *cli.Context) error { return err } - if _, err := sh(cCtx.Context, "goimports", "-w", cCtx.Path("generated-output")); err != nil { + if _, err := sh(cCtx.Context, cCtx.Path("goimports"), "-w", cCtx.Path("generated-output")); err != nil { return err } - if _, err := sh(cCtx.Context, "goimports", "-w", cCtx.Path("generated-test-output")); err != nil { + if _, err := sh(cCtx.Context, cCtx.Path("goimports"), "-w", cCtx.Path("generated-test-output")); err != nil { return err }