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 }