From 6c9cb15931a4f3bc2be074f46be675cbc8637dad Mon Sep 17 00:00:00 2001
From: Tamer Tas <contact@tmrts.com>
Date: Sat, 19 Dec 2015 12:50:02 +0200
Subject: [PATCH] List templates in a tabular form with metadata

---
 pkg/cmd/list.go | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/pkg/cmd/list.go b/pkg/cmd/list.go
index d516d14..f0acff6 100644
--- a/pkg/cmd/list.go
+++ b/pkg/cmd/list.go
@@ -4,8 +4,10 @@ import (
 	"fmt"
 	"os"
 
+	"github.com/olekukonko/tablewriter"
 	cli "github.com/spf13/cobra"
 
+	"github.com/tmrts/tmplt/pkg/template"
 	"github.com/tmrts/tmplt/pkg/tmplt"
 	"github.com/tmrts/tmplt/pkg/util/exit"
 	"github.com/tmrts/tmplt/pkg/util/validate"
@@ -43,8 +45,33 @@ var List = &cli.Command{
 			exit.Error(fmt.Errorf("list: %s", err))
 		}
 
+		var data [][]string
 		for name, _ := range templateNames {
-			fmt.Println(name)
+			tmplPath, err := tmplt.TemplatePath(name)
+			if err != nil {
+				exit.Fatal(fmt.Errorf("list: %s", err))
+			}
+
+			tmpl, err := template.Get(tmplPath)
+			if err != nil {
+				exit.Fatal(fmt.Errorf("list: %s", err))
+			}
+
+			data = append(data, tmpl.Info().String())
+		}
+
+		// TODO Wrap in a util function
+		table := tablewriter.NewWriter(os.Stdout)
+		table.SetHeader([]string{"Tag", "Repository", "Created"})
+
+		for _, datum := range data {
+			table.Append(datum)
+		}
+
+		if len(data) == 0 {
+			table.Append([]string{"", "", ""})
 		}
+
+		table.Render()
 	},
 }
-- 
GitLab