forked from TrueCloudLab/restic
Fix bug where some folder listings were empty
This commit is contained in:
parent
7a468d1226
commit
11ce572894
1 changed files with 5 additions and 3 deletions
|
@ -100,11 +100,13 @@ func runLs(opts LsOptions, gopts GlobalOptions, args []string) error {
|
||||||
|
|
||||||
// apply any directory filters
|
// apply any directory filters
|
||||||
if len(dirs) > 0 {
|
if len(dirs) > 0 {
|
||||||
|
nodeDir := path.Dir(nodepath)
|
||||||
|
|
||||||
// this first iteration ensures we do not traverse branches that
|
// this first iteration ensures we do not traverse branches that
|
||||||
// are not in matching trees or will not lead us to matching trees
|
// are not in matching trees or will not lead us to matching trees
|
||||||
var walk bool
|
var walk bool
|
||||||
for _, dir := range dirs {
|
for _, dir := range dirs {
|
||||||
approachingMatchingTree := fs.HasPathPrefix(nodepath, dir)
|
approachingMatchingTree := fs.HasPathPrefix(nodeDir, dir)
|
||||||
inMatchingTree := fs.HasPathPrefix(dir, nodepath)
|
inMatchingTree := fs.HasPathPrefix(dir, nodepath)
|
||||||
|
|
||||||
// this condition is complex, but it basically requires that we
|
// this condition is complex, but it basically requires that we
|
||||||
|
@ -117,7 +119,7 @@ func runLs(opts LsOptions, gopts GlobalOptions, args []string) error {
|
||||||
// to traverse subtrees that are too deep and won't match -- this
|
// to traverse subtrees that are too deep and won't match -- this
|
||||||
// extra check allows us to return SkipNode if we've gone TOO deep,
|
// extra check allows us to return SkipNode if we've gone TOO deep,
|
||||||
// which skips all its subfolders)
|
// which skips all its subfolders)
|
||||||
if approachingMatchingTree || opts.Recursive || (inMatchingTree && dir == path.Dir(nodepath)) {
|
if approachingMatchingTree || opts.Recursive || (inMatchingTree && dir == nodeDir) {
|
||||||
walk = true
|
walk = true
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
@ -143,7 +145,7 @@ func runLs(opts LsOptions, gopts GlobalOptions, args []string) error {
|
||||||
match = true
|
match = true
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
if !opts.Recursive && path.Dir(nodepath) == dir {
|
if !opts.Recursive && nodeDir == dir {
|
||||||
match = true
|
match = true
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue