|
@@ -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 {
|
|
|
- return err
|
|
|
- }
|
|
|
- if _, err := io.Copy(os.Stdout, indented); err != nil {
|
|
|
- return err
|
|
|
+ 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)
|
|
|
+ }
|
|
|
}
|
|
|
+ fmt.Printf("]")
|
|
|
return nil
|
|
|
}
|
|
|
|