From d05cbfa4ec4fbd3d6bc05361d06d15a5ec253b37 Mon Sep 17 00:00:00 2001 From: joeduffy Date: Thu, 6 Jul 2017 00:13:37 -0400 Subject: [PATCH] Print short []s and {}s for empty arrays/maps --- cmd/lumi/plan.go | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/cmd/lumi/plan.go b/cmd/lumi/plan.go index 4859eaaa0..460c062fe 100644 --- a/cmd/lumi/plan.go +++ b/cmd/lumi/plan.go @@ -463,19 +463,29 @@ func printPropertyValue(b *bytes.Buffer, v resource.PropertyValue, planning bool } else if v.IsString() { b.WriteString(fmt.Sprintf("%q", v.StringValue())) } else if v.IsArray() { - b.WriteString(fmt.Sprintf("[\n")) - for i, elem := range v.ArrayValue() { - newIndent := printArrayElemHeader(b, i, indent) - printPropertyValue(b, elem, planning, newIndent) + arr := v.ArrayValue() + if len(arr) == 0 { + b.WriteString("[]") + } else { + b.WriteString(fmt.Sprintf("[\n")) + for i, elem := range arr { + newIndent := printArrayElemHeader(b, i, indent) + printPropertyValue(b, elem, planning, newIndent) + } + b.WriteString(fmt.Sprintf("%s]", indent)) } - b.WriteString(fmt.Sprintf("%s]", indent)) } else if v.IsComputed() || v.IsOutput() { b.WriteString(v.TypeString()) } else { contract.Assert(v.IsObject()) - b.WriteString("{\n") - printObject(b, v.ObjectValue(), planning, indent+" ") - b.WriteString(fmt.Sprintf("%s}", indent)) + obj := v.ObjectValue() + if len(obj) == 0 { + b.WriteString("{}") + } else { + b.WriteString("{\n") + printObject(b, obj, planning, indent+" ") + b.WriteString(fmt.Sprintf("%s}", indent)) + } } b.WriteString("\n") }