summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2022-07-02 21:14:44 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2022-07-02 21:14:44 -0600
commite43749b899d09b57310240fe3abf0f964b9e0cd0 (patch)
treef454153e985d8c0ccf53900c8c1330575ee1a54b
parenta1195c6b5dcd760aa939805727f92a2df306bfa5 (diff)
wip ls-files on scratch
-rw-r--r--cmd/btrfs-ls-files/main.go13
-rw-r--r--pkg/btrfs/io3_btree.go2
2 files changed, 10 insertions, 5 deletions
diff --git a/cmd/btrfs-ls-files/main.go b/cmd/btrfs-ls-files/main.go
index 042dc14..375f427 100644
--- a/cmd/btrfs-ls-files/main.go
+++ b/cmd/btrfs-ls-files/main.go
@@ -121,13 +121,18 @@ func printDir(fs *btrfs.FS, fsTree btrfsvol.LogicalAddr, prefix0, prefix1, dirNa
panic(fmt.Errorf("TODO: handle item type %v", item.Head.Key.ItemType))
}
}
- fmt.Printf("%s%q\t[ino=%d\t",
+ fmt.Printf("%s%q\t[ino=%d",
prefix0, dirName, dirInode)
if dirInodeDatOK {
- fmt.Printf("uid=%d\tgid=%d\tsize=%d]\n",
+ fmt.Printf("\tuid=%d\tgid=%d\tsize=%d]\n",
dirInodeDat.UID, dirInodeDat.GID, dirInodeDat.Size)
} else {
- fmt.Printf("error=read dir: no inode data\n")
+ err := fmt.Errorf("read dir: no inode data")
+ if len(items) == 0 && len(errs) == 1 {
+ err = errs[0]
+ errs = nil
+ }
+ fmt.Printf("]\terror: %v\n", err)
}
for i, index := range util.SortedMapKeys(membersByIndex) {
entry := membersByIndex[index]
@@ -159,7 +164,7 @@ func printDir(fs *btrfs.FS, fsTree btrfsvol.LogicalAddr, prefix0, prefix1, dirNa
if i == len(errs)-1 {
p0, p1 = tL, tS
}
- fmt.Printf("%s%s%s\n", prefix1+p0, prefix1+p1, strings.ReplaceAll(err.Error(), "\n", prefix1+tS+"\n"))
+ fmt.Printf("%serror: %s\n", prefix1+p0, strings.ReplaceAll(err.Error(), "\n", prefix1+p1+" \n"))
}
}
diff --git a/pkg/btrfs/io3_btree.go b/pkg/btrfs/io3_btree.go
index b5414ab..01da746 100644
--- a/pkg/btrfs/io3_btree.go
+++ b/pkg/btrfs/io3_btree.go
@@ -325,7 +325,7 @@ func (fs *FS) next(path TreePath, node *util.Ref[btrfsvol.LogicalAddr, Node]) (T
}
for path[len(path)-1].ItemIdx+1 >= int(node.Data.Head.NumItems) {
path = path[:len(path)-1]
- if len(path) == 0 {
+ if len(path) == 1 {
return nil, nil, nil
}
if node.Addr != path[len(path)-2].NodeAddr {