summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/main.go13
1 files changed, 7 insertions, 6 deletions
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