clean up table rows code

Signed-off-by: Josh Dolitsky <jdolitsky@gmail.com>
pull/5243/head
Josh Dolitsky 7 years ago
parent cc52aea7ff
commit b0e9260bae

@ -39,6 +39,10 @@ import (
"k8s.io/helm/pkg/chartutil" "k8s.io/helm/pkg/chartutil"
) )
var (
tableHeaders = []string{"name", "version", "digest", "size", "created"}
)
type ( type (
filesystemCache struct { filesystemCache struct {
out io.Writer out io.Writer
@ -242,7 +246,7 @@ func (cache *filesystemCache) DeleteReference(ref *Reference) error {
return os.RemoveAll(tagDir) return os.RemoveAll(tagDir)
} }
func (cache *filesystemCache) TableRows() ([][]string, error) { func (cache *filesystemCache) TableRows() ([][]interface{}, error) {
return getRefsSorted(filepath.Join(cache.rootDir, "refs")) return getRefsSorted(filepath.Join(cache.rootDir, "refs"))
} }
@ -409,7 +413,7 @@ func shortDigest(digest string) string {
} }
// getRefsSorted returns a map of all refs stored in a refsRootDir // getRefsSorted returns a map of all refs stored in a refsRootDir
func getRefsSorted(refsRootDir string) ([][]string, error) { func getRefsSorted(refsRootDir string) ([][]interface{}, error) {
refsMap := map[string]map[string]string{} refsMap := map[string]map[string]string{}
// Walk the storage dir, check for symlinks under "refs" dir pointing to valid files in "blobs/" and "charts/" // Walk the storage dir, check for symlinks under "refs" dir pointing to valid files in "blobs/" and "charts/"
@ -458,7 +462,7 @@ func getRefsSorted(refsRootDir string) ([][]string, error) {
// Filter out any refs that are incomplete (do not have all required fields) // Filter out any refs that are incomplete (do not have all required fields)
for k, ref := range refsMap { for k, ref := range refsMap {
allKeysFound := true allKeysFound := true
for _, v := range []string{"name", "version", "digest", "size", "created"} { for _, v := range tableHeaders {
if _, ok := ref[v]; !ok { if _, ok := ref[v]; !ok {
allKeysFound = false allKeysFound = false
break break
@ -469,17 +473,20 @@ func getRefsSorted(refsRootDir string) ([][]string, error) {
} }
} }
// Sort and convert to slice of slices // Sort and convert to format expected by uitable
var refs [][]string refs := make([][]interface{}, len(refsMap))
keys := make([]string, 0, len(refsMap)) keys := make([]string, 0, len(refsMap))
for key := range refsMap { for key := range refsMap {
keys = append(keys, key) keys = append(keys, key)
} }
sort.Strings(keys) sort.Strings(keys)
for _, key := range keys { for i, key := range keys {
refs[i] = make([]interface{}, len(tableHeaders)+1)
refs[i][0] = key
ref := refsMap[key] ref := refsMap[key]
ref["ref"] = key for j, k := range tableHeaders {
refs = append(refs, []string{key, ref["name"], ref["version"], ref["digest"], ref["size"], ref["created"]}) refs[i][j+1] = ref[k]
}
} }
return refs, err return refs, err

@ -145,9 +145,7 @@ func (c *Client) PrintChartTable() error {
return err return err
} }
for _, row := range rows { for _, row := range rows {
if len(row) == 6 { table.AddRow(row...)
table.AddRow(row[0], row[1], row[2], row[3], row[4], row[5])
}
} }
fmt.Fprintln(c.out, table.String()) fmt.Fprintln(c.out, table.String())
return nil return nil

Loading…
Cancel
Save