From e0742350dfb2ba610becbfd42ff6447f4debc3f4 Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Sat, 6 Jan 2018 13:18:37 +0200 Subject: [PATCH] read files line by line --- pkg/server/server.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/pkg/server/server.go b/pkg/server/server.go index 061cea7..2ec9574 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -12,6 +12,7 @@ import ( "github.com/pkg/errors" "gopkg.in/yaml.v2" + "bufio" ) type Server struct { @@ -94,17 +95,20 @@ func filesToMap(dir string) (map[string]string, error) { } list := make(map[string]string, 0) for _, path := range files { - data, err := ioutil.ReadFile(path) + file, err := os.Open(path) if err != nil { - return nil, errors.Wrapf(err, "Reading %v failed", path) + continue } - content := strings.TrimPrefix(string(data), "\n") - kv := strings.Split(content, "=") - if len(kv) > 1 { - list[kv[0]] = strings.TrimPrefix(kv[1], "\n") - } else { - list[kv[0]] = "" + s := bufio.NewScanner(file) + for s.Scan() { + kv := strings.Split(s.Text(), "=") + if len(kv) > 1 { + list[kv[0]] = kv[1] + } else { + list[kv[0]] = "" + } } + file.Close() } return list, nil }