38 lines
1.0 KiB
Go
38 lines
1.0 KiB
Go
package cmd
|
|
|
|
import (
|
|
"os"
|
|
"os/signal"
|
|
|
|
"github.com/spf13/afero"
|
|
"github.com/spf13/cobra"
|
|
"github.com/supabase/cli/internal/stop"
|
|
)
|
|
|
|
var (
|
|
noBackup bool
|
|
projectId string
|
|
all bool
|
|
|
|
stopCmd = &cobra.Command{
|
|
GroupID: groupLocalDev,
|
|
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())
|
|
},
|
|
}
|
|
)
|
|
|
|
func init() {
|
|
flags := stopCmd.Flags()
|
|
flags.Bool("backup", true, "Backs up the current database before stopping.")
|
|
flags.StringVar(&projectId, "project-id", "", "Local project ID to stop.")
|
|
cobra.CheckErr(flags.MarkHidden("backup"))
|
|
flags.BoolVar(&noBackup, "no-backup", false, "Deletes all data volumes after stopping.")
|
|
flags.BoolVar(&all, "all", false, "Stop all local Supabase instances from all projects across the machine.")
|
|
stopCmd.MarkFlagsMutuallyExclusive("project-id", "all")
|
|
rootCmd.AddCommand(stopCmd)
|
|
}
|