Skip to content

Commit f4ddbf3

Browse files
committed
Fix tree permissions bug
There was a bug where if you tried to recurse into a directory you didn’t have permission to read the contents of, the error would be ignored. It now displays the errors.
1 parent 882ac48 commit f4ddbf3

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/output/details.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,9 @@ impl<'a> Render<'a> {
209209

210210
if let Some(r) = self.recurse {
211211
if file.is_directory() && r.tree && !r.is_too_deep(depth.0) {
212-
if let Ok(d) = file.to_dir(false) {
213-
dir = Some(d);
212+
match file.to_dir(false) {
213+
Ok(d) => { dir = Some(d); },
214+
Err(e) => { errors.push((e, None)) },
214215
}
215216
}
216217
};

xtests/attributes

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,49 @@
22
drwxrwxr-x - cassowary  1 Jan 12:34 ├── dirs
33
drwxrwxr-x - cassowary  1 Jan 12:34 │ ├── no-xattrs_empty
44
d--------- - cassowary  1 Jan 12:34 │ ├── no-xattrs_empty_forbidden
5+
│ │ └── <Permission denied (os error 13)>
56
drwxrwxr-x - cassowary  1 Jan 12:34 │ ├── no-xattrs_one-file
67
.rw-rw-r-- 0 cassowary  1 Jan 12:34 │ │ └── file-in-question
78
d--------- - cassowary  1 Jan 12:34 │ ├── no-xattrs_one-file_forbidden
9+
│ │ └── <Permission denied (os error 13)>
810
drwxrwxr-x - cassowary  1 Jan 12:34 │ ├── no-xattrs_two-files
911
.rw-rw-r-- 0 cassowary  1 Jan 12:34 │ │ ├── that-file
1012
.rw-rw-r-- 0 cassowary  1 Jan 12:34 │ │ └── this-file
1113
d--------- - cassowary  1 Jan 12:34 │ ├── no-xattrs_two-files_forbidden
14+
│ │ └── <Permission denied (os error 13)>
1215
drwxrwxr-x@ - cassowary  1 Jan 12:34 │ ├── one-xattr_empty
1316
│ │ └── user.greeting (len 5)
1417
d--------- - cassowary  1 Jan 12:34 │ ├── one-xattr_empty_forbidden
18+
│ │ └── <Permission denied (os error 13)>
1519
drwxrwxr-x@ - cassowary  1 Jan 12:34 │ ├── one-xattr_one-file
1620
│ │ ├── user.greeting (len 5)
1721
.rw-rw-r-- 0 cassowary  1 Jan 12:34 │ │ └── file-in-question
1822
d--------- - cassowary  1 Jan 12:34 │ ├── one-xattr_one-file_forbidden
23+
│ │ └── <Permission denied (os error 13)>
1924
drwxrwxr-x@ - cassowary  1 Jan 12:34 │ ├── one-xattr_two-files
2025
│ │ ├── user.greeting (len 5)
2126
.rw-rw-r-- 0 cassowary  1 Jan 12:34 │ │ ├── that-file
2227
.rw-rw-r-- 0 cassowary  1 Jan 12:34 │ │ └── this-file
2328
d--------- - cassowary  1 Jan 12:34 │ ├── one-xattr_two-files_forbidden
29+
│ │ └── <Permission denied (os error 13)>
2430
drwxrwxr-x@ - cassowary  1 Jan 12:34 │ ├── two-xattrs_empty
2531
│ │ ├── user.greeting (len 5)
2632
│ │ └── user.another_greeting (len 2)
2733
d--------- - cassowary  1 Jan 12:34 │ ├── two-xattrs_empty_forbidden
34+
│ │ └── <Permission denied (os error 13)>
2835
drwxrwxr-x@ - cassowary  1 Jan 12:34 │ ├── two-xattrs_one-file
2936
│ │ ├── user.greeting (len 5)
3037
│ │ ├── user.another_greeting (len 2)
3138
.rw-rw-r-- 0 cassowary  1 Jan 12:34 │ │ └── file-in-question
3239
d--------- - cassowary  1 Jan 12:34 │ ├── two-xattrs_one-file_forbidden
40+
│ │ └── <Permission denied (os error 13)>
3341
drwxrwxr-x@ - cassowary  1 Jan 12:34 │ ├── two-xattrs_two-files
3442
│ │ ├── user.greeting (len 5)
3543
│ │ ├── user.another_greeting (len 2)
3644
.rw-rw-r-- 0 cassowary  1 Jan 12:34 │ │ ├── that-file
3745
.rw-rw-r-- 0 cassowary  1 Jan 12:34 │ │ └── this-file
3846
d--------- - cassowary  1 Jan 12:34 │ └── two-xattrs_two-files_forbidden
47+
│ └── <Permission denied (os error 13)>
3948
drwxrwxr-x - cassowary  1 Jan 12:34 └── files
4049
.rw-rw-r-- 0 cassowary  1 Jan 12:34  ├── no-xattrs
4150
.--------- 0 cassowary  1 Jan 12:34  ├── no-xattrs_forbidden

0 commit comments

Comments
 (0)