Merge pull request #1321 from aiordache/local_ps_services

Add `--services` flag to `compose ps`
This commit is contained in:
Nicolas De loof 2021-02-18 20:36:23 +01:00 committed by GitHub
commit 598f7bba1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 25 additions and 3 deletions

View File

@ -33,9 +33,10 @@ import (
type psOptions struct {
*projectOptions
Format string
All bool
Quiet bool
Format string
All bool
Quiet bool
Services bool
}
func psCommand(p *projectOptions) *cobra.Command {
@ -51,6 +52,7 @@ func psCommand(p *projectOptions) *cobra.Command {
}
psCmd.Flags().StringVar(&opts.Format, "format", "pretty", "Format the output. Values: [pretty | json].")
psCmd.Flags().BoolVarP(&opts.Quiet, "quiet", "q", false, "Only display IDs")
psCmd.Flags().BoolVar(&opts.Services, "services", false, "Display services")
psCmd.Flags().BoolVarP(&opts.All, "all", "a", false, "Show all stopped containers (including those created by the run command)")
return psCmd
}
@ -71,6 +73,17 @@ func runPs(ctx context.Context, opts psOptions) error {
if err != nil {
return err
}
if opts.Services {
services := []string{}
for _, s := range containers {
if !contains(services, s.Service) {
services = append(services, s.Service)
}
}
fmt.Println(strings.Join(services, "\n"))
return nil
}
if opts.Quiet {
for _, s := range containers {
fmt.Println(s.ID)
@ -102,3 +115,12 @@ func runPs(ctx context.Context, opts psOptions) error {
},
"NAME", "SERVICE", "STATUS", "PORTS")
}
func contains(slice []string, item string) bool {
for _, v := range slice {
if v == item {
return true
}
}
return false
}