Browse code

Merge pull request #844 from dotcloud/843-inspect_multiple_params-feature

* Runtime: allow multiple params in inspect

Guillaume J. Charmes authored on 2013/06/13 02:18:42
Showing 1 changed files
... ...
@@ -460,7 +460,7 @@ func (cli *DockerCli) CmdStop(args ...string) error {
460 460
 	for _, name := range cmd.Args() {
461 461
 		_, _, err := cli.call("POST", "/containers/"+name+"/stop?"+v.Encode(), nil)
462 462
 		if err != nil {
463
-			fmt.Printf("%s", err)
463
+			fmt.Fprintf(os.Stderr, "%s", err)
464 464
 		} else {
465 465
 			fmt.Println(name)
466 466
 		}
... ...
@@ -485,7 +485,7 @@ func (cli *DockerCli) CmdRestart(args ...string) error {
485 485
 	for _, name := range cmd.Args() {
486 486
 		_, _, err := cli.call("POST", "/containers/"+name+"/restart?"+v.Encode(), nil)
487 487
 		if err != nil {
488
-			fmt.Printf("%s", err)
488
+			fmt.Fprintf(os.Stderr, "%s", err)
489 489
 		} else {
490 490
 			fmt.Println(name)
491 491
 		}
... ...
@@ -506,7 +506,7 @@ func (cli *DockerCli) CmdStart(args ...string) error {
506 506
 	for _, name := range args {
507 507
 		_, _, err := cli.call("POST", "/containers/"+name+"/start", nil)
508 508
 		if err != nil {
509
-			fmt.Printf("%s", err)
509
+			fmt.Fprintf(os.Stderr, "%s", err)
510 510
 		} else {
511 511
 			fmt.Println(name)
512 512
 		}
... ...
@@ -515,29 +515,38 @@ func (cli *DockerCli) CmdStart(args ...string) error {
515 515
 }
516 516
 
517 517
 func (cli *DockerCli) CmdInspect(args ...string) error {
518
-	cmd := Subcmd("inspect", "CONTAINER|IMAGE", "Return low-level information on a container/image")
518
+	cmd := Subcmd("inspect", "CONTAINER|IMAGE [CONTAINER|IMAGE...]", "Return low-level information on a container/image")
519 519
 	if err := cmd.Parse(args); err != nil {
520 520
 		return nil
521 521
 	}
522
-	if cmd.NArg() != 1 {
522
+	if cmd.NArg() < 1 {
523 523
 		cmd.Usage()
524 524
 		return nil
525 525
 	}
526
-	obj, _, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/json", nil)
527
-	if err != nil {
528
-		obj, _, err = cli.call("GET", "/images/"+cmd.Arg(0)+"/json", nil)
526
+	fmt.Printf("[")
527
+	for i, name := range args {
528
+		if i > 0 {
529
+			fmt.Printf(",")
530
+		}
531
+		obj, _, err := cli.call("GET", "/containers/"+name+"/json", nil)
529 532
 		if err != nil {
530
-			return err
533
+			obj, _, err = cli.call("GET", "/images/"+name+"/json", nil)
534
+			if err != nil {
535
+				fmt.Fprintf(os.Stderr, "%s", err)
536
+				continue
537
+			}
531 538
 		}
532
-	}
533 539
 
534
-	indented := new(bytes.Buffer)
535
-	if err = json.Indent(indented, obj, "", "    "); err != nil {
536
-		return err
537
-	}
538
-	if _, err := io.Copy(os.Stdout, indented); err != nil {
539
-		return err
540
+		indented := new(bytes.Buffer)
541
+		if err = json.Indent(indented, obj, "", "    "); err != nil {
542
+			fmt.Fprintf(os.Stderr, "%s", err)
543
+			continue
544
+		}
545
+		if _, err := io.Copy(os.Stdout, indented); err != nil {
546
+			fmt.Fprintf(os.Stderr, "%s", err)
547
+		}
540 548
 	}
549
+	fmt.Printf("]")
541 550
 	return nil
542 551
 }
543 552