Make sorting printer sort tables in place

k3s-v1.15.3
Jordan Liggitt 2019-04-05 00:21:54 -04:00
parent 7013827309
commit 53e55d314a
1 changed files with 18 additions and 4 deletions

View File

@ -46,13 +46,27 @@ type SortingPrinter struct {
}
func (s *SortingPrinter) PrintObj(obj runtime.Object, out io.Writer) error {
if !meta.IsListType(obj) {
return s.Delegate.PrintObj(obj, out)
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)
}
return s.Delegate.PrintObj(obj, out)
}