From 205b142614d5de08ffc33a04ae4cfc00e65b5dfc Mon Sep 17 00:00:00 2001 From: Matt Holt Date: Mon, 10 Apr 2023 13:55:45 -0600 Subject: cmd: Support `'` quotes in envfile parsing (#5437) --- cmd/main.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'cmd') diff --git a/cmd/main.go b/cmd/main.go index 17da8bd..96debdf 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -374,18 +374,19 @@ func parseEnvFile(envInput io.Reader) (map[string]string, error) { } // quoted value: support newlines - if strings.HasPrefix(val, `"`) { - for !(strings.HasSuffix(line, `"`) && !strings.HasSuffix(line, `\"`)) { - val = strings.ReplaceAll(val, `\"`, `"`) + if strings.HasPrefix(val, `"`) || strings.HasPrefix(val, "'") { + quote := string(val[0]) + for !(strings.HasSuffix(line, quote) && !strings.HasSuffix(line, `\`+quote)) { + val = strings.ReplaceAll(val, `\`+quote, quote) if !scanner.Scan() { break } lineNumber++ - line = strings.ReplaceAll(scanner.Text(), `\"`, `"`) + line = strings.ReplaceAll(scanner.Text(), `\`+quote, quote) val += "\n" + line } - val = strings.TrimPrefix(val, `"`) - val = strings.TrimSuffix(val, `"`) + val = strings.TrimPrefix(val, quote) + val = strings.TrimSuffix(val, quote) } envMap[key] = val -- cgit v1.2.3