From 1fdcd06c345707c3713eeb52400991a211b8b841 Mon Sep 17 00:00:00 2001
From: Jessica Yuen <im.jessicayuen@gmail.com>
Date: Wed, 7 Mar 2018 10:37:22 -0800
Subject: [PATCH] Fix formatting for param diff

Fixes indentation and alignment issues in `ks param diff`.

Signed-off-by: Jessica Yuen <im.jessicayuen@gmail.com>
---
 pkg/kubecfg/param.go | 36 +++++++++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 11 deletions(-)

diff --git a/pkg/kubecfg/param.go b/pkg/kubecfg/param.go
index bb80d975..dc817c4e 100644
--- a/pkg/kubecfg/param.go
+++ b/pkg/kubecfg/param.go
@@ -247,6 +247,11 @@ type paramDiffRecord struct {
 
 // Run executes the diffing of environment params.
 func (c *ParamDiffCmd) Run(out io.Writer) error {
+	const (
+		componentHeader = "COMPONENT"
+		paramHeader     = "PARAM"
+	)
+
 	manager, err := manager()
 	if err != nil {
 		return err
@@ -276,36 +281,45 @@ func (c *ParamDiffCmd) Run(out io.Writer) error {
 
 	componentNames := collectComponents(params1, params2)
 
-	var rows [][]string
+	rows := [][]string{
+		[]string{componentHeader, paramHeader, c.env1, c.env2},
+		[]string{
+			strings.Repeat("=", len(componentHeader)),
+			strings.Repeat("=", len(paramHeader)),
+			strings.Repeat("=", len(c.env1)),
+			strings.Repeat("=", len(c.env2))},
+	}
+
 	for _, componentName := range componentNames {
 		paramNames := collectParams(params1[componentName], params2[componentName])
 
 		for _, paramName := range paramNames {
 			var v1, v2 string
-			var ok bool
-			var p param.Params
 
-			if p, ok = params1[componentName]; ok {
+			if p, ok := params1[componentName]; ok {
 				v1 = p[paramName]
 			}
 
-			if p, ok = params2[componentName]; ok {
+			if p, ok := params2[componentName]; ok {
 				v2 = p[paramName]
 			}
 
-			row := []string{
+			rows = append(rows, []string{
 				componentName,
 				paramName,
 				v1,
 				v2,
-			}
-
-			rows = append(rows, row)
+			})
 		}
 	}
 
-	printTable([]string{"COMPONENT", "PARAM", c.env1, c.env2}, rows)
-	return nil
+	formatted, err := str.PadRows(rows)
+	if err != nil {
+		return err
+	}
+
+	_, err = fmt.Fprint(out, formatted)
+	return err
 }
 
 func collectComponents(param1, param2 map[string]param.Params) []string {
-- 
GitLab