in cmd/output.go [131:168]
func printColumn(response map[string]interface{}, filter []string) {
format := "column"
w := tabwriter.NewWriter(os.Stdout, 0, 0, 3, ' ', tabwriter.DiscardEmptyColumns)
for _, v := range response {
valueType := reflect.TypeOf(v)
if valueType.Kind() == reflect.Slice || valueType.Kind() == reflect.Map {
items, ok := v.([]interface{})
if !ok {
continue
}
var header []string
for idx, item := range items {
row, ok := item.(map[string]interface{})
if !ok || len(row) < 1 {
continue
}
if idx == 0 {
if len(filter) > 0 {
header = filter
} else {
for rk := range row {
header = append(header, strings.ToUpper(rk))
}
sort.Strings(header)
}
fmt.Fprintln(w, strings.Join(header, "\t"))
}
var values []string
for _, key := range header {
values = append(values, jsonify(row[strings.ToLower(key)], format))
}
fmt.Fprintln(w, strings.Join(values, "\t"))
}
}
}
w.Flush()
}