diff --git a/cmd/pkg/new.go b/cmd/pkg/new.go index 68969c1..9a3b547 100644 --- a/cmd/pkg/new.go +++ b/cmd/pkg/new.go @@ -5,6 +5,9 @@ package pkg import ( "fmt" + "os" + "os/exec" + "strings" "go.trai.ch/gecro/config" "go.trai.ch/gecro/internal/generator" @@ -42,10 +45,29 @@ var newCmd = &cobra.Command{ return fmt.Errorf("failed generating new package: %w", err) } + if err := runPostCreateHook(config.DryRun); err != nil { + return err + } + return nil }, } +func runPostCreateHook(dryRun bool) error { + if dryRun { + return nil + } + + command := "bazel" + args := []string{"run", "//:gazelle"} + + fmt.Printf("Running post-create hook: %s %s\n", command, strings.Join(args, " ")) + cmd := exec.Command(command, args...) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + return cmd.Run() +} + func init() { PkgCmd.AddCommand(newCmd) diff --git a/cmd/service/new.go b/cmd/service/new.go index c2fd975..bbdbd03 100644 --- a/cmd/service/new.go +++ b/cmd/service/new.go @@ -5,6 +5,9 @@ package service import ( "fmt" + "os" + "os/exec" + "strings" "go.trai.ch/gecro/config" "go.trai.ch/gecro/internal/generator" @@ -39,10 +42,29 @@ var newCmd = &cobra.Command{ return fmt.Errorf("failed generating new service: %w", err) } + if err := runPostCreateHook(config.DryRun); err != nil { + return err + } + return nil }, } +func runPostCreateHook(dryRun bool) error { + if dryRun { + return nil + } + + command := "bazel" + args := []string{"run", "//:gazelle"} + + fmt.Printf("Running post-create hook: %s %s\n", command, strings.Join(args, " ")) + cmd := exec.Command(command, args...) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + return cmd.Run() +} + func init() { ServiceCmd.AddCommand(newCmd)