From 13df51429c27384481ba5b38b3a8eac185198584 Mon Sep 17 00:00:00 2001 From: Qiao Han Date: Fri, 9 Jan 2026 03:14:37 +0800 Subject: [PATCH] fix: setup cancellation context for all commands --- cmd/bootstrap.go | 4 +--- cmd/db.go | 6 ------ cmd/gen.go | 3 +-- cmd/inspect.go | 8 -------- cmd/link.go | 3 +-- cmd/migration.go | 6 ------ cmd/root.go | 3 +-- cmd/seed.go | 8 -------- cmd/status.go | 6 +----- cmd/stop.go | 6 +----- cmd/test.go | 6 +----- cmd/unlink.go | 6 +----- 12 files changed, 8 insertions(+), 57 deletions(-) diff --git a/cmd/bootstrap.go b/cmd/bootstrap.go index fd9f74912..a39e21448 100644 --- a/cmd/bootstrap.go +++ b/cmd/bootstrap.go @@ -3,8 +3,6 @@ package cmd import ( "context" "fmt" - "os" - "os/signal" "strings" "github.com/go-errors/errors" @@ -28,7 +26,7 @@ var ( Short: "Bootstrap a Supabase project from a starter template", Args: cobra.MaximumNArgs(1), RunE: func(cmd *cobra.Command, args []string) error { - ctx, _ := signal.NotifyContext(cmd.Context(), os.Interrupt) + ctx := cmd.Context() if !viper.IsSet("WORKDIR") { title := fmt.Sprintf("Enter a directory to bootstrap your project (or leave blank to use %s): ", utils.Bold(utils.CurrentDirAbs)) if workdir, err := utils.NewConsole().PromptText(ctx, title); err != nil { diff --git a/cmd/db.go b/cmd/db.go index 3b435ec7e..94af92908 100644 --- a/cmd/db.go +++ b/cmd/db.go @@ -3,7 +3,6 @@ package cmd import ( "fmt" "os" - "os/signal" "path/filepath" "github.com/spf13/afero" @@ -31,11 +30,6 @@ var ( GroupID: groupLocalDev, Use: "db", Short: "Manage Postgres databases", - PersistentPreRunE: func(cmd *cobra.Command, args []string) error { - ctx, _ := signal.NotifyContext(cmd.Context(), os.Interrupt) - cmd.SetContext(ctx) - return cmd.Root().PersistentPreRunE(cmd, args) - }, } dbBranchCmd = &cobra.Command{ diff --git a/cmd/gen.go b/cmd/gen.go index f063f11a4..d15908a7b 100644 --- a/cmd/gen.go +++ b/cmd/gen.go @@ -3,7 +3,6 @@ package cmd import ( "encoding/json" "os" - "os/signal" "strings" "time" @@ -88,7 +87,7 @@ var ( return nil }, RunE: func(cmd *cobra.Command, args []string) error { - ctx, _ := signal.NotifyContext(cmd.Context(), os.Interrupt) + ctx := cmd.Context() if flags.DbConfig.Host == "" { // If no flag is specified, prompt for project id. if err := flags.ParseProjectRef(ctx, afero.NewMemMapFs()); errors.Is(err, utils.ErrNotLinked) { diff --git a/cmd/inspect.go b/cmd/inspect.go index 2405e8d78..160c73303 100644 --- a/cmd/inspect.go +++ b/cmd/inspect.go @@ -1,9 +1,6 @@ package cmd import ( - "os" - "os/signal" - "github.com/spf13/afero" "github.com/spf13/cobra" "github.com/supabase/cli/internal/inspect" @@ -33,11 +30,6 @@ var ( inspectDBCmd = &cobra.Command{ Use: "db", Short: "Tools to inspect your Supabase database", - PersistentPreRunE: func(cmd *cobra.Command, args []string) error { - ctx, _ := signal.NotifyContext(cmd.Context(), os.Interrupt) - cmd.SetContext(ctx) - return cmd.Root().PersistentPreRunE(cmd, args) - }, } inspectDBStatsCmd = &cobra.Command{ diff --git a/cmd/link.go b/cmd/link.go index 82b5f4ca3..026e7e244 100644 --- a/cmd/link.go +++ b/cmd/link.go @@ -3,7 +3,6 @@ package cmd import ( "fmt" "os" - "os/signal" "github.com/spf13/afero" "github.com/spf13/cobra" @@ -28,7 +27,7 @@ var ( return nil }, RunE: func(cmd *cobra.Command, args []string) error { - ctx, _ := signal.NotifyContext(cmd.Context(), os.Interrupt) + ctx := cmd.Context() // Use an empty fs to skip loading from file if err := flags.ParseProjectRef(ctx, afero.NewMemMapFs()); err != nil { return err diff --git a/cmd/migration.go b/cmd/migration.go index fc92e40d2..697f3651d 100644 --- a/cmd/migration.go +++ b/cmd/migration.go @@ -3,7 +3,6 @@ package cmd import ( "fmt" "os" - "os/signal" "github.com/spf13/afero" "github.com/spf13/cobra" @@ -25,11 +24,6 @@ var ( Use: "migration", Aliases: []string{"migrations"}, Short: "Manage database migration scripts", - PersistentPreRunE: func(cmd *cobra.Command, args []string) error { - ctx, _ := signal.NotifyContext(cmd.Context(), os.Interrupt) - cmd.SetContext(ctx) - return cmd.Root().PersistentPreRunE(cmd, args) - }, } migrationListCmd = &cobra.Command{ diff --git a/cmd/root.go b/cmd/root.go index 5a1072284..00d7eb2fd 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -93,7 +93,7 @@ var ( } cmd.SilenceUsage = true // Load profile before changing workdir - ctx := cmd.Context() + ctx, _ := signal.NotifyContext(cmd.Context(), os.Interrupt) fsys := afero.NewOsFs() if err := utils.LoadProfile(ctx, fsys); err != nil { return err @@ -106,7 +106,6 @@ var ( if err := promptLogin(fsys); err != nil { return err } - ctx, _ = signal.NotifyContext(ctx, os.Interrupt) if cmd.Flags().Lookup("project-ref") != nil { if err := flags.ParseProjectRef(ctx, fsys); err != nil { return err diff --git a/cmd/seed.go b/cmd/seed.go index c36b70741..68b62cb25 100644 --- a/cmd/seed.go +++ b/cmd/seed.go @@ -1,9 +1,6 @@ package cmd import ( - "os" - "os/signal" - "github.com/spf13/afero" "github.com/spf13/cobra" "github.com/supabase/cli/internal/seed/buckets" @@ -16,11 +13,6 @@ var ( GroupID: groupLocalDev, Use: "seed", Short: "Seed a Supabase project from " + utils.ConfigPath, - PersistentPreRunE: func(cmd *cobra.Command, args []string) error { - ctx, _ := signal.NotifyContext(cmd.Context(), os.Interrupt) - cmd.SetContext(ctx) - return cmd.Root().PersistentPreRunE(cmd, args) - }, } bucketsCmd = &cobra.Command{ diff --git a/cmd/status.go b/cmd/status.go index 11b774854..023c16e66 100644 --- a/cmd/status.go +++ b/cmd/status.go @@ -1,9 +1,6 @@ package cmd import ( - "os" - "os/signal" - env "github.com/Netflix/go-env" "github.com/spf13/afero" "github.com/spf13/cobra" @@ -27,8 +24,7 @@ var ( return env.Unmarshal(es, &names) }, RunE: func(cmd *cobra.Command, args []string) error { - ctx, _ := signal.NotifyContext(cmd.Context(), os.Interrupt) - return status.Run(ctx, names, utils.OutputFormat.Value, afero.NewOsFs()) + return status.Run(cmd.Context(), names, utils.OutputFormat.Value, afero.NewOsFs()) }, Example: ` supabase status -o env --override-name api.url=NEXT_PUBLIC_SUPABASE_URL supabase status -o json`, diff --git a/cmd/stop.go b/cmd/stop.go index 6a6f4aa55..1768ca683 100644 --- a/cmd/stop.go +++ b/cmd/stop.go @@ -1,9 +1,6 @@ package cmd import ( - "os" - "os/signal" - "github.com/spf13/afero" "github.com/spf13/cobra" "github.com/supabase/cli/internal/stop" @@ -19,8 +16,7 @@ var ( Use: "stop", Short: "Stop all local Supabase containers", RunE: func(cmd *cobra.Command, args []string) error { - ctx, _ := signal.NotifyContext(cmd.Context(), os.Interrupt) - return stop.Run(ctx, !noBackup, projectId, all, afero.NewOsFs()) + return stop.Run(cmd.Context(), !noBackup, projectId, all, afero.NewOsFs()) }, } ) diff --git a/cmd/test.go b/cmd/test.go index 06fb77730..55e052066 100644 --- a/cmd/test.go +++ b/cmd/test.go @@ -1,9 +1,6 @@ package cmd import ( - "os" - "os/signal" - "github.com/spf13/afero" "github.com/spf13/cobra" "github.com/supabase/cli/internal/test/new" @@ -33,8 +30,7 @@ var ( Short: "Create a new test file", Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { - ctx, _ := signal.NotifyContext(cmd.Context(), os.Interrupt) - return new.Run(ctx, args[0], template.Value, afero.NewOsFs()) + return new.Run(cmd.Context(), args[0], template.Value, afero.NewOsFs()) }, } ) diff --git a/cmd/unlink.go b/cmd/unlink.go index e017e75ed..071bc02e3 100644 --- a/cmd/unlink.go +++ b/cmd/unlink.go @@ -1,9 +1,6 @@ package cmd import ( - "os" - "os/signal" - "github.com/spf13/afero" "github.com/spf13/cobra" "github.com/supabase/cli/internal/unlink" @@ -15,8 +12,7 @@ var ( Use: "unlink", Short: "Unlink a Supabase project", RunE: func(cmd *cobra.Command, args []string) error { - ctx, _ := signal.NotifyContext(cmd.Context(), os.Interrupt) - return unlink.Run(ctx, afero.NewOsFs()) + return unlink.Run(cmd.Context(), afero.NewOsFs()) }, } )