github.com/cspotcode/docker-cli@v20.10.0-rc1.0.20201201121459-3faad7acc5b8+incompatible/cli/command/stack/ps.go (about)

     1  package stack
     2  
     3  import (
     4  	"github.com/docker/cli/cli"
     5  	"github.com/docker/cli/cli/command"
     6  	"github.com/docker/cli/cli/command/stack/kubernetes"
     7  	"github.com/docker/cli/cli/command/stack/options"
     8  	"github.com/docker/cli/cli/command/stack/swarm"
     9  	cliopts "github.com/docker/cli/opts"
    10  	"github.com/spf13/cobra"
    11  	"github.com/spf13/pflag"
    12  )
    13  
    14  func newPsCommand(dockerCli command.Cli, common *commonOptions) *cobra.Command {
    15  	opts := options.PS{Filter: cliopts.NewFilterOpt()}
    16  
    17  	cmd := &cobra.Command{
    18  		Use:   "ps [OPTIONS] STACK",
    19  		Short: "List the tasks in the stack",
    20  		Args:  cli.ExactArgs(1),
    21  		RunE: func(cmd *cobra.Command, args []string) error {
    22  			opts.Namespace = args[0]
    23  			if err := validateStackName(opts.Namespace); err != nil {
    24  				return err
    25  			}
    26  			return RunPs(dockerCli, cmd.Flags(), common.Orchestrator(), opts)
    27  		},
    28  	}
    29  	flags := cmd.Flags()
    30  	flags.BoolVar(&opts.NoTrunc, "no-trunc", false, "Do not truncate output")
    31  	flags.BoolVar(&opts.NoResolve, "no-resolve", false, "Do not map IDs to Names")
    32  	flags.VarP(&opts.Filter, "filter", "f", "Filter output based on conditions provided")
    33  	flags.BoolVarP(&opts.Quiet, "quiet", "q", false, "Only display task IDs")
    34  	flags.StringVar(&opts.Format, "format", "", "Pretty-print tasks using a Go template")
    35  	kubernetes.AddNamespaceFlag(flags)
    36  	return cmd
    37  }
    38  
    39  // RunPs performs a stack ps against the specified orchestrator
    40  func RunPs(dockerCli command.Cli, flags *pflag.FlagSet, commonOrchestrator command.Orchestrator, opts options.PS) error {
    41  	return runOrchestratedCommand(dockerCli, flags, commonOrchestrator,
    42  		func() error { return swarm.RunPS(dockerCli, opts) },
    43  		func(kli *kubernetes.KubeCli) error { return kubernetes.RunPS(kli, opts) })
    44  }