Browse code

Allow multiple tab/spaces between instructions and arguments

Guillaume J. Charmes authored on 2013/06/11 01:31:59
Showing 1 changed files
... ...
@@ -124,8 +124,8 @@ func (b *buildFile) CmdEnv(args string) error {
124 124
 	if len(tmp) != 2 {
125 125
 		return fmt.Errorf("Invalid ENV format")
126 126
 	}
127
-	key := strings.Trim(tmp[0], " ")
128
-	value := strings.Trim(tmp[1], " ")
127
+	key := strings.Trim(tmp[0], " \t")
128
+	value := strings.Trim(tmp[1], " \t")
129 129
 
130 130
 	for i, elem := range b.config.Env {
131 131
 		if strings.HasPrefix(elem, key+"=") {
... ...
@@ -215,8 +215,8 @@ func (b *buildFile) CmdAdd(args string) error {
215 215
 	if len(tmp) != 2 {
216 216
 		return fmt.Errorf("Invalid ADD format")
217 217
 	}
218
-	orig := strings.Trim(tmp[0], " ")
219
-	dest := strings.Trim(tmp[1], " ")
218
+	orig := strings.Trim(tmp[0], " \t")
219
+	dest := strings.Trim(tmp[1], " \t")
220 220
 
221 221
 	cmd := b.config.Cmd
222 222
 	b.config.Cmd = []string{"/bin/sh", "-c", fmt.Sprintf("#(nop) ADD %s in %s", orig, dest)}
... ...
@@ -344,7 +344,7 @@ func (b *buildFile) Build(dockerfile, context io.Reader) (string, error) {
344 344
 			}
345 345
 			return "", err
346 346
 		}
347
-		line = strings.TrimSpace(strings.Replace(line, "	", " ", -1))
347
+		line = strings.Trim(strings.Replace(line, "\t", " ", -1), " \t\r\n")
348 348
 		// Skip comments and empty line
349 349
 		if len(line) == 0 || line[0] == '#' {
350 350
 			continue