(p *ProjectOptions, dockerCli command.Cli, backendOptions *BackendOptions)
| 37 | } |
| 38 | |
| 39 | func waitCommand(p *ProjectOptions, dockerCli command.Cli, backendOptions *BackendOptions) *cobra.Command { |
| 40 | opts := waitOptions{ |
| 41 | ProjectOptions: p, |
| 42 | } |
| 43 | |
| 44 | var statusCode int64 |
| 45 | var err error |
| 46 | cmd := &cobra.Command{ |
| 47 | Use: "wait SERVICE [SERVICE...] [OPTIONS]", |
| 48 | Short: "Block until containers of all (or specified) services stop.", |
| 49 | Args: cli.RequiresMinArgs(1), |
| 50 | RunE: Adapt(func(ctx context.Context, services []string) error { |
| 51 | opts.services = services |
| 52 | statusCode, err = runWait(ctx, dockerCli, backendOptions, &opts) |
| 53 | return err |
| 54 | }), |
| 55 | PostRun: func(cmd *cobra.Command, args []string) { |
| 56 | os.Exit(int(statusCode)) |
| 57 | }, |
| 58 | } |
| 59 | |
| 60 | cmd.Flags().BoolVar(&opts.downProject, "down-project", false, "Drops project when the first container stops") |
| 61 | |
| 62 | return cmd |
| 63 | } |
| 64 | |
| 65 | func runWait(ctx context.Context, dockerCli command.Cli, backendOptions *BackendOptions, opts *waitOptions) (int64, error) { |
| 66 | _, name, err := opts.projectOrName(ctx, dockerCli) |
no test coverage detected