switch back to the valid json format

Docker-DCO-1.1-Signed-off-by: Victor Vieux <victor.vieux@docker.com> (github: vieux)
This commit is contained in:
Victor Vieux
2014-01-21 15:06:23 -08:00
parent 62c4563987
commit e3461bc8d6
9 changed files with 115 additions and 122 deletions
+26
View File
@@ -5,6 +5,7 @@ import (
"encoding/json"
"fmt"
"io"
"io/ioutil"
"sort"
"strconv"
"strings"
@@ -324,6 +325,31 @@ func (t *Table) WriteTo(dst io.Writer) (n int64, err error) {
return n, nil
}
func (t *Table) ReadListFrom(src io.Reader) (n int64, err error) {
var array []interface{}
content, err := ioutil.ReadAll(src)
if err != nil {
return -1, err
}
if err := json.Unmarshal(content, &array); err != nil {
return -1, err
}
for _, item := range array {
if m, ok := item.(map[string]interface{}); ok {
env := &Env{}
for key, value := range m {
env.SetAuto(key, value)
}
t.Add(env)
}
}
return int64(len(content)), nil
}
func (t *Table) ReadFrom(src io.Reader) (n int64, err error) {
decoder := NewDecoder(src)
for {
+16
View File
@@ -211,6 +211,22 @@ func (o *Output) AddEnv() (dst *Env, err error) {
return dst, nil
}
func (o *Output) AddListTable() (dst *Table, err error) {
src, err := o.AddPipe()
if err != nil {
return nil, err
}
dst = NewTable("", 0)
o.tasks.Add(1)
go func() {
defer o.tasks.Done()
if _, err := dst.ReadListFrom(src); err != nil {
return
}
}()
return dst, nil
}
func (o *Output) AddTable() (dst *Table, err error) {
src, err := o.AddPipe()
if err != nil {