diff options
| author | Quentin Carbonneaux | 2023-05-16 10:41:10 +0200 |
|---|---|---|
| committer | Quentin Carbonneaux | 2023-05-16 10:41:10 +0200 |
| commit | 2b7ed823ddd951d7ca4d35e5cbf66e0f7e558a34 (patch) | |
| tree | ebcd91b46833f5c57763c1647e452146b84b2be7 | |
| parent | 309e00082dfb356bd1a07a2e07b7a10fa0783b0b (diff) | |
[mx] AllRefs now returns refs in subdirs
| -rw-r--r-- | memex/repo.go | 25 |
1 files 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 |
