From e8bf776d4f72739331ca5e051b5cbd22474e1cc1 Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Thu, 27 Mar 2014 18:25:49 -0700 Subject: [PATCH] beam/data: Message.Parse creates a message from shell-style 'key=value' arguments Docker-DCO-1.1-Signed-off-by: Solomon Hykes (github: shykes) Upstream-commit: 08686f1d2108bbe93d02e870abe8b944b1fe022b Component: engine --- components/engine/pkg/beam/data/message.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/components/engine/pkg/beam/data/message.go b/components/engine/pkg/beam/data/message.go index e6536f83e0..193fb7b241 100644 --- a/components/engine/pkg/beam/data/message.go +++ b/components/engine/pkg/beam/data/message.go @@ -11,6 +11,22 @@ func Empty() Message { return Message(Encode(nil)) } +func Parse(args []string) Message { + data := make(map[string][]string) + for _, word := range args { + if strings.Contains(word, "=") { + kv := strings.SplitN(word, "=", 2) + key := kv[0] + var val string + if len(kv) == 2 { + val = kv[1] + } + data[key] = []string{val} + } + } + return Message(Encode(data)) +} + func (m Message) Add(k, v string) Message { data, err := Decode(string(m)) if err != nil {