github.com/supabase/cli@v1.168.1/internal/stop/stop.go (about) 1 package stop 2 3 import ( 4 "context" 5 _ "embed" 6 "fmt" 7 "io" 8 9 "github.com/docker/docker/api/types/volume" 10 "github.com/spf13/afero" 11 "github.com/supabase/cli/internal/utils" 12 ) 13 14 func Run(ctx context.Context, backup bool, projectId string, fsys afero.Fs) error { 15 // Sanity checks. 16 if len(projectId) > 0 { 17 utils.Config.ProjectId = projectId 18 utils.UpdateDockerIds() 19 } else if err := utils.LoadConfigFS(fsys); err != nil { 20 return err 21 } 22 23 // Stop all services 24 if err := utils.RunProgram(ctx, func(p utils.Program, ctx context.Context) error { 25 w := utils.StatusWriter{Program: p} 26 return stop(ctx, backup, w) 27 }); err != nil { 28 return err 29 } 30 31 fmt.Println("Stopped " + utils.Aqua("supabase") + " local development setup.") 32 if resp, err := utils.Docker.VolumeList(ctx, volume.ListOptions{ 33 Filters: utils.CliProjectFilter(), 34 }); err == nil && len(resp.Volumes) > 0 { 35 listVolume := fmt.Sprintf("docker volume ls --filter label=%s=%s", utils.CliProjectLabel, utils.Config.ProjectId) 36 utils.CmdSuggestion = "Local data are backed up to docker volume. Use docker to show them: " + utils.Aqua(listVolume) 37 } 38 return nil 39 } 40 41 func stop(ctx context.Context, backup bool, w io.Writer) error { 42 utils.NoBackupVolume = !backup 43 return utils.DockerRemoveAll(ctx, w) 44 }