Remove use of Table from 'docker diff'

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: 49c72506ace177e33d867123ca15f193c38bcf45
Component: engine
This commit is contained in:
Doug Davis
2015-04-02 15:52:34 -07:00
parent f437be36ca
commit 68cf0c513e
3 changed files with 22 additions and 20 deletions

View File

@ -1,37 +1,40 @@
package client
import (
"encoding/json"
"fmt"
"github.com/docker/docker/engine"
"github.com/docker/docker/api/types"
"github.com/docker/docker/pkg/archive"
flag "github.com/docker/docker/pkg/mflag"
)
// CmdDiff shows changes on a container's filesystem.
//
// Each changed file is printed on a separate line, prefixed with a single character that indicates the status of the file: C (modified), A (added), or D (deleted).
// Each changed file is printed on a separate line, prefixed with a single
// character that indicates the status of the file: C (modified), A (added),
// or D (deleted).
//
// Usage: docker diff CONTAINER
func (cli *DockerCli) CmdDiff(args ...string) error {
cmd := cli.Subcmd("diff", "CONTAINER", "Inspect changes on a container's filesystem", true)
cmd.Require(flag.Exact, 1)
cmd.ParseFlags(args, true)
body, _, err := readBody(cli.call("GET", "/containers/"+cmd.Arg(0)+"/changes", nil, nil))
rdr, _, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/changes", nil, nil)
if err != nil {
return err
}
outs := engine.NewTable("", 0)
if _, err := outs.ReadListFrom(body); err != nil {
changes := []types.ContainerChange{}
err = json.NewDecoder(rdr).Decode(&changes)
if err != nil {
return err
}
for _, change := range outs.Data {
for _, change := range changes {
var kind string
switch change.GetInt("Kind") {
switch change.Kind {
case archive.ChangeModify:
kind = "C"
case archive.ChangeAdd:
@ -39,7 +42,8 @@ func (cli *DockerCli) CmdDiff(args ...string) error {
case archive.ChangeDelete:
kind = "D"
}
fmt.Fprintf(cli.out, "%s %s\n", kind, change.Get("Path"))
fmt.Fprintf(cli.out, "%s %s\n", kind, change.Path)
}
return nil
}