1
// Copyright 2015 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
12
"github.com/juju/errors"
15
func formatMetadataListTabular(value interface{}) ([]byte, error) {
16
metadata, ok := value.([]MetadataInfo)
18
return nil, errors.Errorf("expected value of type %T, got %T", metadata, value)
20
return formatMetadataTabular(metadata)
23
// formatMetadataTabular returns a tabular summary of cloud image metadata.
24
func formatMetadataTabular(metadata []MetadataInfo) ([]byte, error) {
28
// To format things into columns.
35
tw := tabwriter.NewWriter(&out, minwidth, tabwidth, padding, padchar, flags)
36
print := func(values ...string) {
37
fmt.Fprintln(tw, strings.Join(values, "\t"))
39
print("SOURCE", "SERIES", "ARCH", "REGION", "IMAGE-ID", "STREAM", "VIRT-TYPE", "STORAGE-TYPE")
41
for _, m := range metadata {
42
print(m.Source, m.Series, m.Arch, m.Region, m.ImageId, m.Stream, m.VirtType, m.RootStorageType)
46
return out.Bytes(), nil