diff --git a/cmd/moby/build.go b/cmd/moby/build.go index 8970499c4..116bf65d8 100644 --- a/cmd/moby/build.go +++ b/cmd/moby/build.go @@ -65,6 +65,13 @@ func build(args []string) { log.Debugf("Outputs selected: %s", buildOut.String()) + err := validateOutputs(buildOut) + if err != nil { + log.Errorf("Error parsing outputs: %v", err) + buildCmd.Usage() + os.Exit(1) + } + if len(remArgs) == 0 { fmt.Println("Please specify a configuration file") buildCmd.Usage() diff --git a/cmd/moby/output.go b/cmd/moby/output.go index 60fb65fa9..42372920b 100644 --- a/cmd/moby/output.go +++ b/cmd/moby/output.go @@ -119,15 +119,29 @@ var outFuns = map[string]func(string, []byte) error{ }, } -func outputs(base string, image []byte, out outputList) error { - log.Debugf("output: %v %s", out, base) +func validateOutputs(out outputList) error { + log.Debugf("validating output: %v", out) for _, o := range out { f := outFuns[o] if f == nil { return fmt.Errorf("Unknown output type %s", o) } - err := f(base, image) + } + + return nil +} + +func outputs(base string, image []byte, out outputList) error { + log.Debugf("output: %v %s", out, base) + + err := validateOutputs(out) + if err != nil { + return err + } + for _, o := range out { + f := outFuns[o] + err = f(base, image) if err != nil { return err }