mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
builder: handle anything we cannot parse the command for as a fatal error.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
This commit is contained in:
parent
dc243c812b
commit
63637b9d27
3 changed files with 17 additions and 4 deletions
|
@ -72,7 +72,10 @@ func parseLine(line string) (string, *Node, error) {
|
||||||
return line, nil, nil
|
return line, nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd, args := splitCommand(line)
|
cmd, args, err := splitCommand(line)
|
||||||
|
if err != nil {
|
||||||
|
return "", nil, err
|
||||||
|
}
|
||||||
|
|
||||||
node := &Node{}
|
node := &Node{}
|
||||||
node.Value = cmd
|
node.Value = cmd
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
<html>
|
||||||
|
</html>
|
|
@ -1,6 +1,9 @@
|
||||||
package parser
|
package parser
|
||||||
|
|
||||||
import "strings"
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
// QuoteString walks characters (after trimming), escapes any quotes and
|
// QuoteString walks characters (after trimming), escapes any quotes and
|
||||||
// escapes, then wraps the whole thing in quotes. Very useful for generating
|
// escapes, then wraps the whole thing in quotes. Very useful for generating
|
||||||
|
@ -66,12 +69,17 @@ func fullDispatch(cmd, args string) (*Node, map[string]bool, error) {
|
||||||
|
|
||||||
// splitCommand takes a single line of text and parses out the cmd and args,
|
// splitCommand takes a single line of text and parses out the cmd and args,
|
||||||
// which are used for dispatching to more exact parsing functions.
|
// which are used for dispatching to more exact parsing functions.
|
||||||
func splitCommand(line string) (string, string) {
|
func splitCommand(line string) (string, string, error) {
|
||||||
cmdline := TOKEN_WHITESPACE.Split(line, 2)
|
cmdline := TOKEN_WHITESPACE.Split(line, 2)
|
||||||
|
|
||||||
|
if len(cmdline) != 2 {
|
||||||
|
return "", "", fmt.Errorf("We do not understand this file. Please ensure it is a valid Dockerfile.")
|
||||||
|
}
|
||||||
|
|
||||||
cmd := strings.ToLower(cmdline[0])
|
cmd := strings.ToLower(cmdline[0])
|
||||||
// the cmd should never have whitespace, but it's possible for the args to
|
// the cmd should never have whitespace, but it's possible for the args to
|
||||||
// have trailing whitespace.
|
// have trailing whitespace.
|
||||||
return cmd, strings.TrimSpace(cmdline[1])
|
return cmd, strings.TrimSpace(cmdline[1]), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// covers comments and empty lines. Lines should be trimmed before passing to
|
// covers comments and empty lines. Lines should be trimmed before passing to
|
||||||
|
|
Loading…
Add table
Reference in a new issue