Преглед изворни кода

Merge pull request #10008 from rhatdan/help

Fix docker run/create not printing error messages
Jessie Frazelle пре 10 година
родитељ
комит
6e5c5d33dd
2 измењених фајлова са 15 додато и 11 уклоњено
  1. 2 2
      api/client/commands.go
  2. 13 9
      utils/flags.go

+ 2 - 2
api/client/commands.go

@@ -2164,7 +2164,7 @@ func (cli *DockerCli) CmdCreate(args ...string) error {
 
 	config, hostConfig, cmd, err := runconfig.Parse(cmd, args)
 	if err != nil {
-		return &utils.StatusError{StatusCode: 1}
+		utils.ReportError(cmd, err.Error(), true)
 	}
 	if config.Image == "" {
 		cmd.Usage()
@@ -2201,7 +2201,7 @@ func (cli *DockerCli) CmdRun(args ...string) error {
 	config, hostConfig, cmd, err := runconfig.Parse(cmd, args)
 	// just in case the Parse does not exit
 	if err != nil {
-		return &utils.StatusError{StatusCode: 1}
+		utils.ReportError(cmd, err.Error(), true)
 	}
 	if config.Image == "" {
 		cmd.Usage()

+ 13 - 9
utils/flags.go

@@ -27,15 +27,19 @@ func ParseFlags(cmd *flag.FlagSet, args []string, withHelp bool) error {
 		os.Exit(0)
 	}
 	if str := cmd.CheckArgs(); str != "" {
-		if withHelp {
-			if os.Args[0] == cmd.Name() {
-				str += ". See '" + os.Args[0] + " --help'"
-			} else {
-				str += ". See '" + os.Args[0] + " " + cmd.Name() + " --help'"
-			}
-		}
-		fmt.Fprintf(cmd.Out(), "docker: %s.\n", str)
-		os.Exit(1)
+		ReportError(cmd, str, withHelp)
 	}
 	return nil
 }
+
+func ReportError(cmd *flag.FlagSet, str string, withHelp bool) {
+	if withHelp {
+		if os.Args[0] == cmd.Name() {
+			str += ". See '" + os.Args[0] + " --help'"
+		} else {
+			str += ". See '" + os.Args[0] + " " + cmd.Name() + " --help'"
+		}
+	}
+	fmt.Fprintf(cmd.Out(), "docker: %s.\n", str)
+	os.Exit(1)
+}