@marcel91200 / caddy Mirror · read-only / commits / 205b1426
Fork 0

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