Parse env file discard utf8 bom (#38)

* powershell 5 may add the BOM even when explicitly using utf8

* add test + apply to GITHUB_PATH as well
This commit is contained in:
ChristopherHX
2025-02-12 21:26:55 +01:00
committed by GitHub
parent d930a546ec
commit 27511e3003
7 changed files with 110 additions and 1 deletions

View File

@@ -25,8 +25,16 @@ func parseEnvFile(e Container, srcPath string, env *map[string]string) common.Ex
return err
}
s := bufio.NewScanner(reader)
firstLine := true
for s.Scan() {
line := s.Text()
if firstLine {
firstLine = false
// skip utf8 bom, powershell 5 legacy uses it for utf8
if len(line) >= 3 && line[0] == 239 && line[1] == 187 && line[2] == 191 {
line = line[3:]
}
}
singleLineEnv := strings.Index(line, "=")
multiLineEnv := strings.Index(line, "<<")
if singleLineEnv != -1 && (multiLineEnv == -1 || singleLineEnv < multiLineEnv) {