From 5a1210b96c20bb17a0577216d78278e0dfbdddeb Mon Sep 17 00:00:00 2001 From: yugo-horie Date: Fri, 10 Sep 2021 08:33:36 +0900 Subject: [PATCH] Skip read lines from empty file Signed-off-by: yugo-horie --- internal/reader/lines.go | 7 +++++++ internal/reader/lines_test.go | 7 +++++++ internal/reader/testdata/empty.txt | 0 3 files changed, 14 insertions(+) create mode 100644 internal/reader/testdata/empty.txt diff --git a/internal/reader/lines.go b/internal/reader/lines.go index c81502a..8ee5919 100644 --- a/internal/reader/lines.go +++ b/internal/reader/lines.go @@ -35,6 +35,13 @@ func (l *Lines) Extract() ([]string, error) { if err != nil { return nil, err } + stat, err := f.Stat() + if err != nil { + return nil, err + } + if stat.Size() == 0 { + return []string{}, nil + } defer func() { _ = f.Close() }() diff --git a/internal/reader/lines_test.go b/internal/reader/lines_test.go index 27a246e..d7e31ac 100644 --- a/internal/reader/lines_test.go +++ b/internal/reader/lines_test.go @@ -103,6 +103,13 @@ func TestReadLinesFromFile(t *testing.T) { expected: "Morbi vitae nulla in dui lobortis consectetur. Integer nec tempus felis. Ut quis suscipit risus. Donec lobortis consequat nunc, in efficitur mi maximus ac. Sed id felis posuere, aliquam purus eget, faucibus augue.", wantError: false, }, + { + name: "extract lines from file", + fileName: "testdata/empty.txt", + lineNumber: 0, + expected: "", + wantError: false, + }, { name: "extract lines from file", fileName: "testdata/noop.txt", diff --git a/internal/reader/testdata/empty.txt b/internal/reader/testdata/empty.txt new file mode 100644 index 0000000..e69de29