浏览代码

beam/data: Message.Parse creates a message from shell-style 'key=value' arguments

Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Solomon Hykes 11 年之前
父节点
当前提交
08686f1d21
共有 1 个文件被更改,包括 16 次插入0 次删除
  1. 16 0
      pkg/beam/data/message.go

+ 16 - 0
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 {