diff --git a/commands.go b/commands.go index 9de6bf5e86..75b1783e6a 100644 --- a/commands.go +++ b/commands.go @@ -460,7 +460,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) } @@ -485,7 +485,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) } @@ -506,7 +506,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) } @@ -515,29 +515,38 @@ 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) + fmt.Printf("[") + for i, name := range args { + if i > 0 { + fmt.Printf(",") + } + obj, _, err := cli.call("GET", "/containers/"+name+"/json", nil) if err != nil { - return err + obj, _, err = cli.call("GET", "/images/"+name+"/json", nil) + if err != nil { + fmt.Fprintf(os.Stderr, "%s", err) + continue + } + } + + indented := new(bytes.Buffer) + if err = json.Indent(indented, obj, "", " "); err != nil { + fmt.Fprintf(os.Stderr, "%s", err) + continue + } + if _, err := io.Copy(os.Stdout, indented); err != nil { + fmt.Fprintf(os.Stderr, "%s", 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 - } + fmt.Printf("]") return nil }