Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
Mirrored from https://github.com/Slazee/caddy.git
Synced Nov 13, 04:15 UTC
cmd: Support `'` quotes in envfile parsing (#5437)
Matt Holt committed
Apr 10, 2023 at 13:55 UTC
205b142614d5de08ffc33a04ae4cfc00e65b5dfc
1 file changed
+7
-6
cmd/main.go
+7
-6
@@ -374,18 +374,19 @@ func parseEnvFile(envInput io.Reader) (map[string]string, error) {
374
}
375
376
// quoted value: support newlines
377
- if strings.HasPrefix(val, `"`) {
378
- for !(strings.HasSuffix(line, `"`) && !strings.HasSuffix(line, `\"`)) {
379
- val = strings.ReplaceAll(val, `\"`, `"`)
377
+ if strings.HasPrefix(val, `"`) || strings.HasPrefix(val, "'") {
378
+ quote := string(val[0])
379
+ for !(strings.HasSuffix(line, quote) && !strings.HasSuffix(line, `\`+quote)) {
380
+ val = strings.ReplaceAll(val, `\`+quote, quote)
381
if !scanner.Scan() {
382
break
383
}
384
lineNumber++
384
- line = strings.ReplaceAll(scanner.Text(), `\"`, `"`)
385
+ line = strings.ReplaceAll(scanner.Text(), `\`+quote, quote)
386
val += "\n" + line
387
}
387
- val = strings.TrimPrefix(val, `"`)
388
- val = strings.TrimSuffix(val, `"`)
388
+ val = strings.TrimPrefix(val, quote)
389
+ val = strings.TrimSuffix(val, quote)
390
}
391
392
envMap[key] = val