From 2b7ed823ddd951d7ca4d35e5cbf66e0f7e558a34 Mon Sep 17 00:00:00 2001 From: Quentin Carbonneaux Date: Tue, 16 May 2023 10:41:10 +0200 Subject: [mx] AllRefs now returns refs in subdirs --- memex/repo.go | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/memex/repo.go b/memex/repo.go index b2bd174..2321a50 100644 --- a/memex/repo.go +++ b/memex/repo.go @@ -48,14 +48,23 @@ func (l *RepoLock) Unlock() { } func AllRefs(arch string) []string { - fs, err := ioutil.ReadDir(path.Join(arch, "memex/refs")) - if err != nil { - panic(err) - } - refs := make([]string, 0, len(fs)) - for _, f := range fs { - if !f.IsDir() { - refs = append(refs, f.Name()) + refsdir := path.Join(arch, "memex/refs") + refs := []string{} + dirs := []string{"."} + for len(dirs) != 0 { + dir := dirs[0] + dirs = dirs[1:] + fs, err := ioutil.ReadDir(path.Join(refsdir, dir)) + if err != nil { + panic(err) + } + for _, f := range fs { + name := path.Join(dir, f.Name()) + if !f.IsDir() { + refs = append(refs, name) + } else { + dirs = append(dirs, name) + } } } return refs -- cgit v1.2.3