strip trailing newline from Files.Lines

Signed-off-by: Joe Julian <me@joejulian.name>
pull/11758/head
Joe Julian 1 year ago
parent e63083492b
commit b3707e666b
No known key found for this signature in database
GPG Key ID: FAB12BE0575D999B

@ -131,7 +131,7 @@ func (f files) AsConfig() string {
// //
// data: // data:
// //
// {{ .Files.Glob("secrets/*").AsSecrets() }} // {{ .Files.Glob("secrets/*").AsSecrets() | indent 4 }}
func (f files) AsSecrets() string { func (f files) AsSecrets() string {
if f == nil { if f == nil {
return "" return ""
@ -157,6 +157,9 @@ func (f files) Lines(path string) []string {
if f == nil || f[path] == nil { if f == nil || f[path] == nil {
return []string{} return []string{}
} }
s := string(f[path])
return strings.Split(string(f[path]), "\n") if s[len(s)-1] == '\n' {
s = s[:len(s)-1]
}
return strings.Split(s, "\n")
} }

@ -28,7 +28,8 @@ var cases = []struct {
{"ship/stowaway.txt", "Legatt"}, {"ship/stowaway.txt", "Legatt"},
{"story/name.txt", "The Secret Sharer"}, {"story/name.txt", "The Secret Sharer"},
{"story/author.txt", "Joseph Conrad"}, {"story/author.txt", "Joseph Conrad"},
{"multiline/test.txt", "bar\nfoo"}, {"multiline/test.txt", "bar\nfoo\n"},
{"multiline/test_with_blank_lines.txt", "bar\nfoo\n\n\n"},
} }
func getTestFiles() files { func getTestFiles() files {
@ -96,3 +97,15 @@ func TestLines(t *testing.T) {
as.Equal("bar", out[0]) as.Equal("bar", out[0])
} }
func TestBlankLines(t *testing.T) {
as := assert.New(t)
f := getTestFiles()
out := f.Lines("multiline/test_with_blank_lines.txt")
as.Len(out, 4)
as.Equal("bar", out[0])
as.Equal("", out[3])
}

Loading…
Cancel
Save