From 53e55d314a0cfa1cfced26d13013e50f35655449 Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Fri, 5 Apr 2019 00:21:54 -0400 Subject: [PATCH] Make sorting printer sort tables in place --- pkg/kubectl/cmd/get/sorter.go | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/pkg/kubectl/cmd/get/sorter.go b/pkg/kubectl/cmd/get/sorter.go index a5f9d04a18..599b4acd15 100644 --- a/pkg/kubectl/cmd/get/sorter.go +++ b/pkg/kubectl/cmd/get/sorter.go @@ -46,13 +46,27 @@ type SortingPrinter struct { } func (s *SortingPrinter) PrintObj(obj runtime.Object, out io.Writer) error { - if !meta.IsListType(obj) { + if table, isTable := obj.(*metav1beta1.Table); isTable && len(table.Rows) > 1 { + parsedField, err := RelaxedJSONPathExpression(s.SortField) + if err != nil { + parsedField = s.SortField + } + + if sorter, err := NewTableSorter(table, parsedField); err != nil { + return err + } else if err := sorter.Sort(); err != nil { + return err + } + return s.Delegate.PrintObj(table, out) + } + + if meta.IsListType(obj) { + if err := s.sortObj(obj); err != nil { + return err + } return s.Delegate.PrintObj(obj, out) } - if err := s.sortObj(obj); err != nil { - return err - } return s.Delegate.PrintObj(obj, out) }