summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/btrfs-rec/inspect_lsfiles.go30
-rwxr-xr-xscripts/main.sh9
2 files changed, 25 insertions, 14 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)
diff --git a/scripts/main.sh b/scripts/main.sh
index bc8b01d..c490841 100755
--- a/scripts/main.sh
+++ b/scripts/main.sh
@@ -7,8 +7,7 @@ gen() (
if test -s "$tgt"; then
return
fi
- set -x
- time "$@" \
+ { set -x; time "$@"; } \
>"$tgt" \
2> >(tee >&2 "$log")
)
@@ -33,6 +32,6 @@ gen $b.gen/2.csums.gob \
gen $b.gen/3.mappings.json \
./btrfs-rec --pv=$b.img --mappings=$b.gen/1.mappings.json \
inspect scan-for-extents $b.gen/0.scan-for-nodes.json $b.gen/2.csums.gob
-
-#time ./btrfs-rec --pv=$b.img --mappings=$b.mappings.0.json inspect ls-files \
-# &> $b.ls-files.txt
+gen $b.gen/4.ls-files.txt \
+ ./btrfs-rec --pv=$b.img --mappings=$b.gen/3.mappings.json \
+ inspect ls-files