summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Carbonneaux2023-05-16 10:41:10 +0200
committerQuentin Carbonneaux2023-05-16 10:41:10 +0200
commit2b7ed823ddd951d7ca4d35e5cbf66e0f7e558a34 (patch)
treeebcd91b46833f5c57763c1647e452146b84b2be7
parent309e00082dfb356bd1a07a2e07b7a10fa0783b0b (diff)
[mx] AllRefs now returns refs in subdirs
-rw-r--r--memex/repo.go25
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