From a799cdad3e25136ff313d692b9972cb725754055 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Thu, 6 Jun 2013 15:22:54 +0000 Subject: [PATCH 1/2] allow multiple params in inspect --- commands.go | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/commands.go b/commands.go index 50aaac8fb..1e0abdc0b 100644 --- a/commands.go +++ b/commands.go @@ -512,28 +512,33 @@ func (cli *DockerCli) CmdStart(args ...string) error { } func (cli *DockerCli) CmdInspect(args ...string) error { - cmd := Subcmd("inspect", "CONTAINER|IMAGE", "Return low-level information on a container/image") + cmd := Subcmd("inspect", "CONTAINER|IMAGE [CONTAINER|IMAGE...]", "Return low-level information on a container/image") if err := cmd.Parse(args); err != nil { return nil } - if cmd.NArg() != 1 { + if cmd.NArg() < 1 { cmd.Usage() return nil } - obj, _, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/json", nil) - if err != nil { - obj, _, err = cli.call("GET", "/images/"+cmd.Arg(0)+"/json", nil) - if err != nil { - return err - } - } - indented := new(bytes.Buffer) - if err = json.Indent(indented, obj, "", " "); err != nil { - return err - } - if _, err := io.Copy(os.Stdout, indented); err != nil { - return err + for _, name := range args { + obj, _, err := cli.call("GET", "/containers/"+name+"/json", nil) + if err != nil { + obj, _, err = cli.call("GET", "/images/"+name+"/json", nil) + if err != nil { + fmt.Printf("%s", err) + continue + } + } + + indented := new(bytes.Buffer) + if err = json.Indent(indented, obj, "", " "); err != nil { + fmt.Printf("%s", err) + continue + } + if _, err := io.Copy(os.Stdout, indented); err != nil { + fmt.Printf("%s", err) + } } return nil } From 4107701062bc729d06e1729e2b4c8c92b3b8b4f2 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Thu, 6 Jun 2013 15:45:08 +0000 Subject: [PATCH 2/2] add [] and move errors to stderr --- commands.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/commands.go b/commands.go index 1e0abdc0b..78b4418ea 100644 --- a/commands.go +++ b/commands.go @@ -457,7 +457,7 @@ func (cli *DockerCli) CmdStop(args ...string) error { for _, name := range cmd.Args() { _, _, err := cli.call("POST", "/containers/"+name+"/stop?"+v.Encode(), nil) if err != nil { - fmt.Printf("%s", err) + fmt.Fprintf(os.Stderr, "%s", err) } else { fmt.Println(name) } @@ -482,7 +482,7 @@ func (cli *DockerCli) CmdRestart(args ...string) error { for _, name := range cmd.Args() { _, _, err := cli.call("POST", "/containers/"+name+"/restart?"+v.Encode(), nil) if err != nil { - fmt.Printf("%s", err) + fmt.Fprintf(os.Stderr, "%s", err) } else { fmt.Println(name) } @@ -503,7 +503,7 @@ func (cli *DockerCli) CmdStart(args ...string) error { for _, name := range args { _, _, err := cli.call("POST", "/containers/"+name+"/start", nil) if err != nil { - fmt.Printf("%s", err) + fmt.Fprintf(os.Stderr, "%s", err) } else { fmt.Println(name) } @@ -520,26 +520,30 @@ func (cli *DockerCli) CmdInspect(args ...string) error { cmd.Usage() return nil } - - for _, name := range args { + fmt.Printf("[") + for i, name := range args { + if i > 0 { + fmt.Printf(",") + } obj, _, err := cli.call("GET", "/containers/"+name+"/json", nil) if err != nil { obj, _, err = cli.call("GET", "/images/"+name+"/json", nil) if err != nil { - fmt.Printf("%s", err) + fmt.Fprintf(os.Stderr, "%s", err) continue } } indented := new(bytes.Buffer) if err = json.Indent(indented, obj, "", " "); err != nil { - fmt.Printf("%s", err) + fmt.Fprintf(os.Stderr, "%s", err) continue } if _, err := io.Copy(os.Stdout, indented); err != nil { - fmt.Printf("%s", err) + fmt.Fprintf(os.Stderr, "%s", err) } } + fmt.Printf("]") return nil }