From b7265440f8f6a2401461efcd08fabe3fb6bd9250 Mon Sep 17 00:00:00 2001 From: Donny Xia Date: Wed, 7 Oct 2020 12:44:45 -0700 Subject: [PATCH] make file name more readable when no group --- api/resid/gvk.go | 16 ++++++++++++++ api/resid/gvk_test.go | 25 +++++++++++++++------- kustomize/internal/commands/build/build.go | 2 +- 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/api/resid/gvk.go b/api/resid/gvk.go index 4d18713a2..1e7b5f8d4 100644 --- a/api/resid/gvk.go +++ b/api/resid/gvk.go @@ -79,6 +79,22 @@ func (x Gvk) String() string { return strings.Join([]string{g, v, k}, fieldSep) } +// StringWoEmptyField returns a string representation of the GVK. Non-exist +// fields will be omitted. +func (x Gvk) StringWoEmptyField() string { + var s []string + if x.Group != "" { + s = append(s, x.Group) + } + if x.Version != "" { + s = append(s, x.Version) + } + if x.Kind != "" { + s = append(s, x.Kind) + } + return strings.Join(s, fieldSep) +} + // Equals returns true if the Gvk's have equal fields. func (x Gvk) Equals(o Gvk) bool { return x.Group == o.Group && x.Version == o.Version && x.Kind == o.Kind diff --git a/api/resid/gvk_test.go b/api/resid/gvk_test.go index 0587123fc..53f53618f 100644 --- a/api/resid/gvk_test.go +++ b/api/resid/gvk_test.go @@ -96,15 +96,16 @@ func TestIsLessThan1(t *testing.T) { var stringTests = []struct { x Gvk s string + r string }{ - {Gvk{}, "~G_~V_~K"}, - {Gvk{Kind: "k"}, "~G_~V_k"}, - {Gvk{Version: "v"}, "~G_v_~K"}, - {Gvk{Version: "v", Kind: "k"}, "~G_v_k"}, - {Gvk{Group: "g"}, "g_~V_~K"}, - {Gvk{Group: "g", Kind: "k"}, "g_~V_k"}, - {Gvk{Group: "g", Version: "v"}, "g_v_~K"}, - {Gvk{Group: "g", Version: "v", Kind: "k"}, "g_v_k"}, + {Gvk{}, "~G_~V_~K", ""}, + {Gvk{Kind: "k"}, "~G_~V_k", "k"}, + {Gvk{Version: "v"}, "~G_v_~K", "v"}, + {Gvk{Version: "v", Kind: "k"}, "~G_v_k", "v_k"}, + {Gvk{Group: "g"}, "g_~V_~K", "g"}, + {Gvk{Group: "g", Kind: "k"}, "g_~V_k", "g_k"}, + {Gvk{Group: "g", Version: "v"}, "g_v_~K", "g_v"}, + {Gvk{Group: "g", Version: "v", Kind: "k"}, "g_v_k", "g_v_k"}, } func TestString(t *testing.T) { @@ -115,6 +116,14 @@ func TestString(t *testing.T) { } } +func TestStringWoEmptyField(t *testing.T) { + for _, hey := range stringTests { + if hey.x.StringWoEmptyField() != hey.r { + t.Fatalf("bad string %s for %v '%s'", hey.x.StringWoEmptyField(), hey.x, hey.r) + } + } +} + func TestParseGroupVersion(t *testing.T) { tests := []struct { input string diff --git a/kustomize/internal/commands/build/build.go b/kustomize/internal/commands/build/build.go index 88c189230..5b0f4fb04 100644 --- a/kustomize/internal/commands/build/build.go +++ b/kustomize/internal/commands/build/build.go @@ -191,7 +191,7 @@ func writeIndividualFiles( } func fileName(res *resource.Resource) string { - return strings.ToLower(res.GetGvk().String()) + + return strings.ToLower(res.GetGvk().StringWoEmptyField()) + "_" + strings.ToLower(res.GetName()) + ".yaml" }