all repos — elgit @ 6c5cc57b578117ef8d56432f3e8b114cb39b5aee

fork of legit: web frontend for git, written in go

scan projects.list by line instead of reading into memory

Alan Pearce
commit

6c5cc57b578117ef8d56432f3e8b114cb39b5aee

parent

44450b390182ad5d88368acdf21b58cfdb6ba7ef

1 file changed, 10 insertions(+), 5 deletions(-)

changed files
M routes/util.goroutes/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