diff --git a/tags.go b/tags.go index 276001c..0f0ceed 100644 --- a/tags.go +++ b/tags.go @@ -2,6 +2,8 @@ package main import ( "encoding/json" + "fmt" + "strings" yaml "github.com/sanathkr/go-yaml" ) @@ -13,7 +15,22 @@ type jsonItem struct { func getJsonForInputTags(input *Input) ([]byte, error) { data := map[string]string{} - yaml.Unmarshal(input.TagsBody, &data) + + // Tags from YAML file + err := yaml.Unmarshal(input.TagsBody, &data) + if err != nil { + return nil, err + } + + // Tags from CLI + for _, kv := range input.ParametersCLI { + pair := strings.SplitN(kv, "=", 2) + if len(pair) != 2 { + return nil, fmt.Errorf("expected key=value, got %s", pair) + } + data[pair[0]] = pair[1] + } + items := []jsonItem{} for key, value := range data { items = append(items, jsonItem{Key: key, Value: value})