Validate output before doing the work

Signed-off-by: French Ben <frenchben@docker.com>
This commit is contained in:
French Ben 2017-06-01 14:30:41 -07:00
parent dec7f8bb2b
commit 23856c1e46
2 changed files with 24 additions and 3 deletions

View File

@ -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()

View File

@ -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
}