diff --git a/cli/command/stack/list.go b/cli/command/stack/list.go index 9b6c645e29..3d81242b7a 100644 --- a/cli/command/stack/list.go +++ b/cli/command/stack/list.go @@ -3,17 +3,17 @@ package stack import ( "fmt" "io" + "sort" "strconv" "text/tabwriter" - "golang.org/x/net/context" - "github.com/docker/docker/api/types" "github.com/docker/docker/cli" "github.com/docker/docker/cli/command" "github.com/docker/docker/cli/compose/convert" "github.com/docker/docker/client" "github.com/spf13/cobra" + "golang.org/x/net/context" ) const ( @@ -53,12 +53,20 @@ func runList(dockerCli *command.DockerCli, opts listOptions) error { return nil } +type byName []*stack + +func (n byName) Len() int { return len(n) } +func (n byName) Swap(i, j int) { n[i], n[j] = n[j], n[i] } +func (n byName) Less(i, j int) bool { return n[i].Name < n[j].Name } + func printTable(out io.Writer, stacks []*stack) { writer := tabwriter.NewWriter(out, 0, 4, 2, ' ', 0) // Ignore flushing errors defer writer.Flush() + sort.Sort(byName(stacks)) + fmt.Fprintf(writer, listItemFmt, "NAME", "SERVICES") for _, stack := range stacks { fmt.Fprintf(