Browse Source

builder: comments should also be elided in the middle of statements following a line continuation.

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
Erik Hollensbe 10 years ago
parent
commit
96f342f703

+ 4 - 3
builder/parser/parser.go

@@ -98,11 +98,12 @@ func Parse(rwc io.Reader) (*Node, error) {
 	scanner := bufio.NewScanner(rwc)
 
 	for scanner.Scan() {
-		if scanner.Text() == "" {
+		scannedLine := strings.TrimLeftFunc(scanner.Text(), unicode.IsSpace)
+		if stripComments(scannedLine) == "" {
 			continue
 		}
 
-		line, child, err := parseLine(strings.TrimLeftFunc(scanner.Text(), unicode.IsSpace))
+		line, child, err := parseLine(scannedLine)
 		if err != nil {
 			return nil, err
 		}
@@ -111,7 +112,7 @@ func Parse(rwc io.Reader) (*Node, error) {
 			for scanner.Scan() {
 				newline := scanner.Text()
 
-				if newline == "" {
+				if stripComments(strings.TrimSpace(newline)) == "" {
 					continue
 				}
 

+ 7 - 0
builder/parser/testfiles/continueIndent/Dockerfile

@@ -26,3 +26,10 @@ frog
 RUN echo good\
 bye\
 frog
+
+RUN echo hello \
+# this is a comment
+
+# this is a comment with a blank line surrounding it
+
+this is some more useful stuff

+ 1 - 0
builder/parser/testfiles/continueIndent/result

@@ -7,3 +7,4 @@
 (run "echo hi   world  goodnight")
 (run "echo goodbyefrog")
 (run "echo goodbyefrog")
+(run "echo hello this is some more useful stuff")