summaryrefslogtreecommitdiff
path: root/cmd/btrfs-rec/inspect_lsfiles.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2022-07-17 23:07:36 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2022-07-17 23:07:36 -0600
commit079054c1ce90235eff4b7c26cce1b9f77c02269f (patch)
tree6e91453fea483093d5be1f2e731b33817ee8e5fc /cmd/btrfs-rec/inspect_lsfiles.go
parent8f4278dcdc1767bad9a26315e5a180c7114b2eb4 (diff)
improve ls-files
Diffstat (limited to 'cmd/btrfs-rec/inspect_lsfiles.go')
-rw-r--r--cmd/btrfs-rec/inspect_lsfiles.go30
1 files changed, 21 insertions, 9 deletions
diff --git a/cmd/btrfs-rec/inspect_lsfiles.go b/cmd/btrfs-rec/inspect_lsfiles.go
index e706c1f..283ee2d 100644
--- a/cmd/btrfs-rec/inspect_lsfiles.go
+++ b/cmd/btrfs-rec/inspect_lsfiles.go
@@ -78,15 +78,27 @@ func printText(out io.Writer, prefix string, isLast bool, name, text string) {
func printSubvol(out io.Writer, prefix string, isLast bool, name string, subvol *btrfs.Subvolume) {
rootInode, err := subvol.GetRootInode()
if err != nil {
- printText(out, prefix, isLast, name, "err="+err.Error())
+ printText(out, prefix, isLast, name+"/", fmt.Sprintf("subvol_id=%v err=%v",
+ subvol.TreeID, err))
return
}
dir, err := subvol.LoadDir(rootInode)
if err != nil {
- printText(out, prefix, isLast, name, "err="+err.Error())
+ printText(out, prefix, isLast, name+"/", fmt.Sprintf("subvol_id=%v err=%v",
+ subvol.TreeID, err))
return
}
- printDir(out, prefix, isLast, name, dir)
+ if name == "/" {
+ printDir(out, prefix, isLast, name, dir)
+ return
+ }
+ printText(out, prefix, isLast, name+"/", fmt.Sprintf("subvol_id=%v", subvol.TreeID))
+ if isLast {
+ prefix += tS
+ } else {
+ prefix += tl
+ }
+ printDir(out, prefix, true, name, dir)
}
func fmtInode(inode btrfs.BareInode) string {
@@ -109,7 +121,7 @@ func fmtInode(inode btrfs.BareInode) string {
}
func printDir(out io.Writer, prefix string, isLast bool, name string, dir *btrfs.Dir) {
- printText(out, prefix, isLast, name, fmtInode(dir.BareInode))
+ printText(out, prefix, isLast, name+"/", fmtInode(dir.BareInode))
if isLast {
prefix += tS
} else {
@@ -136,7 +148,7 @@ func printDirEntry(out io.Writer, prefix string, isLast bool, subvol *btrfs.Subv
case btrfsitem.INODE_ITEM_KEY:
dir, err := subvol.LoadDir(entry.Location.ObjectID)
if err != nil {
- printText(out, prefix, isLast, name, "err="+err.Error())
+ printText(out, prefix, isLast, name, fmt.Sprintf("%v err=%v", entry.Type, err))
return
}
printDir(out, prefix, isLast, name, dir)
@@ -156,7 +168,7 @@ func printDirEntry(out io.Writer, prefix string, isLast bool, subvol *btrfs.Subv
}
file, err := subvol.LoadFile(entry.Location.ObjectID)
if err != nil {
- printText(out, prefix, isLast, name, "err="+err.Error())
+ printText(out, prefix, isLast, name, fmt.Sprintf("%v err=%v", entry.Type, err))
return
}
printSymlink(out, prefix, isLast, name, file)
@@ -167,7 +179,7 @@ func printDirEntry(out io.Writer, prefix string, isLast bool, subvol *btrfs.Subv
}
file, err := subvol.LoadFile(entry.Location.ObjectID)
if err != nil {
- printText(out, prefix, isLast, name, "err="+err.Error())
+ printText(out, prefix, isLast, name, fmt.Sprintf("%v err=%v", entry.Type, err))
return
}
printFile(out, prefix, isLast, name, file)
@@ -178,7 +190,7 @@ func printDirEntry(out io.Writer, prefix string, isLast bool, subvol *btrfs.Subv
}
file, err := subvol.LoadFile(entry.Location.ObjectID)
if err != nil {
- printText(out, prefix, isLast, name, "err="+err.Error())
+ printText(out, prefix, isLast, name, fmt.Sprintf("%v err=%v", entry.Type, err))
return
}
printSocket(out, prefix, isLast, name, file)
@@ -189,7 +201,7 @@ func printDirEntry(out io.Writer, prefix string, isLast bool, subvol *btrfs.Subv
}
file, err := subvol.LoadFile(entry.Location.ObjectID)
if err != nil {
- printText(out, prefix, isLast, name, "err="+err.Error())
+ printText(out, prefix, isLast, name, fmt.Sprintf("%v err=%v", entry.Type, err))
return
}
printPipe(out, prefix, isLast, name, file)