From 5d05a8291314b8f727b04b504b8d7fc7ed7f42da Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Thu, 21 Sep 2017 16:03:59 +0200 Subject: [PATCH] Improve error message for COPY missing destination Signed-off-by: Sebastiaan van Stijn --- builder/dockerfile/instructions/parse.go | 8 ++++---- builder/dockerfile/instructions/parse_test.go | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/builder/dockerfile/instructions/parse.go b/builder/dockerfile/instructions/parse.go index e52ac47a11..86ddc57b7e 100644 --- a/builder/dockerfile/instructions/parse.go +++ b/builder/dockerfile/instructions/parse.go @@ -235,7 +235,7 @@ func parseLabel(req parseRequest) (*LabelCommand, error) { func parseAdd(req parseRequest) (*AddCommand, error) { if len(req.args) < 2 { - return nil, errAtLeastTwoArguments("ADD") + return nil, errNoDestinationArgument("ADD") } flChown := req.flags.AddString("chown", "") if err := req.flags.Parse(); err != nil { @@ -250,7 +250,7 @@ func parseAdd(req parseRequest) (*AddCommand, error) { func parseCopy(req parseRequest) (*CopyCommand, error) { if len(req.args) < 2 { - return nil, errAtLeastTwoArguments("COPY") + return nil, errNoDestinationArgument("COPY") } flChown := req.flags.AddString("chown", "") flFrom := req.flags.AddString("from", "") @@ -622,8 +622,8 @@ func errExactlyOneArgument(command string) error { return errors.Errorf("%s requires exactly one argument", command) } -func errAtLeastTwoArguments(command string) error { - return errors.Errorf("%s requires at least two arguments", command) +func errNoDestinationArgument(command string) error { + return errors.Errorf("%s requires at least two arguments, but only one was provided. Destination could not be determined.", command) } func errBlankCommandNames(command string) error { diff --git a/builder/dockerfile/instructions/parse_test.go b/builder/dockerfile/instructions/parse_test.go index bf41b1a266..f15eaca1d6 100644 --- a/builder/dockerfile/instructions/parse_test.go +++ b/builder/dockerfile/instructions/parse_test.go @@ -45,7 +45,7 @@ func TestCommandsAtLeastOneArgument(t *testing.T) { } } -func TestCommandsAtLeastTwoArgument(t *testing.T) { +func TestCommandsNoDestinationArgument(t *testing.T) { commands := []string{ "ADD", "COPY", @@ -55,7 +55,7 @@ func TestCommandsAtLeastTwoArgument(t *testing.T) { ast, err := parser.Parse(strings.NewReader(command + " arg1")) require.NoError(t, err) _, err = ParseInstruction(ast.AST.Children[0]) - assert.EqualError(t, err, errAtLeastTwoArguments(command).Error()) + assert.EqualError(t, err, errNoDestinationArgument(command).Error()) } }