mirror of
https://github.com/clearlinux/docker.git
synced 2026-10-04 07:48:44 +00:00
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:
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user