From 3b644474c41bcf3c84ca450e446eea3e02b877d7 Mon Sep 17 00:00:00 2001 From: guineveresaenger Date: Wed, 15 Aug 2018 03:01:29 -0700 Subject: [PATCH] Parse data into string map for easy access in RunAddMetadata --- pkg/commands/addmetadata.go | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/pkg/commands/addmetadata.go b/pkg/commands/addmetadata.go index 4de9beb6b..d4898b5cb 100644 --- a/pkg/commands/addmetadata.go +++ b/pkg/commands/addmetadata.go @@ -34,19 +34,19 @@ const ( label ) -func (kind KindOfAdd) String() string { +func (k KindOfAdd) String() string { kinds := [...]string{ "annotation", "label", } - if kind < 0 || kind > 1 { + if k < 0 || k > 1 { return "Unknown metadatakind" } - return kinds[kind] + return kinds[k] } type addMetadataOptions struct { - metadata string + metadata map[string]string } // newCmdAddAnnotation adds one or more commonAnnotations to the kustomization file. @@ -108,8 +108,13 @@ func (o *addMetadataOptions) Validate(args []string, k KindOfAdd) error { return fmt.Errorf("invalid %s format: %s", k, input) } } - - o.metadata = args[0] + //parse annotation keys and values into metadata + entries := strings.Split(args[0], ",") + o.metadata = make(map[string]string) + for _, entry := range entries { + kv := strings.Split(entry, ":") + o.metadata[kv[0]] = kv[1] + } return nil } @@ -133,20 +138,18 @@ func (o *addMetadataOptions) RunAddMetadata(fsys fs.FileSystem, k KindOfAdd) err m.CommonAnnotations = make(map[string]string) } - entries := strings.Split(o.metadata, ",") - for _, entry := range entries { - kv := strings.Split(entry, ":") + for key, value := range o.metadata { if k == label { - if _, ok := m.CommonLabels[kv[0]]; ok { - return fmt.Errorf("%s %s already in kustomization file", k, kv[0]) + if _, ok := m.CommonLabels[key]; ok { + return fmt.Errorf("%s %s already in kustomization file", k, key) } - m.CommonLabels[kv[0]] = kv[1] + m.CommonLabels[key] = value } if k == annotation { - if _, ok := m.CommonAnnotations[kv[0]]; ok { - return fmt.Errorf("%s %s already in kustomization file", k, kv[0]) + if _, ok := m.CommonAnnotations[key]; ok { + return fmt.Errorf("%s %s already in kustomization file", k, key) } - m.CommonAnnotations[kv[0]] = kv[1] + m.CommonAnnotations[key] = value } }