scan projects.list by line instead of reading into memory
1 file changed, 10 insertions(+), 5 deletions(-)
changed files
M routes/util.go → routes/util.go
@@ -1,7 +1,7 @@ package routes import ( - "bytes" + "bufio" "log" "net/http" "os"@@ -52,15 +52,20 @@ ) } func ReadProjectsList(filename string) ([]string, error) { - content, err := os.ReadFile(filename) + file, err := os.Open(filename) if err != nil { return nil, err } - lines := bytes.SplitSeq(content, []byte("\n")) + defer file.Close() + + scanner := bufio.NewScanner(file) projects := []string{} - for line := range lines { - projects = append(projects, strings.TrimSuffix(string(line), ".git")) + for scanner.Scan() { + projects = append(projects, strings.TrimSuffix(scanner.Text(), ".git")) + } + if err := scanner.Err(); err != nil { + return nil, err } return projects, nil