summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Zhao <jeff.no.zhao@gmail.com>2021-06-21 21:41:04 -0400
committerJeff Zhao <jeff.no.zhao@gmail.com>2021-06-21 21:41:04 -0400
commit72aaf0c5d10db0004d48e27c58d18d8f2c568f8f (patch)
treef04ad2bd4bfe6bd58b48677dc19dc4599d18faa3
parenta4b4a1b4b9c7827f756e9950d73dc885d2954ff9 (diff)
fix not displaying directories without proper permissions
- e.g. /root does not appear because we can't count the number of items inside it - add a space padding to the file size/directory size
-rw-r--r--src/fs/metadata.rs3
-rw-r--r--src/ui/widgets/tui_dirlist_detailed.rs6
2 files changed, 5 insertions, 4 deletions
diff --git a/src/fs/metadata.rs b/src/fs/metadata.rs
index cc3e0c6..b3f6492 100644
--- a/src/fs/metadata.rs
+++ b/src/fs/metadata.rs
@@ -40,7 +40,8 @@ impl JoshutoMetadata {
let _modified = metadata.modified()?;
let _permissions = metadata.permissions();
let (_file_type, _directory_size) = if metadata.file_type().is_dir() {
- (FileType::Directory, Some(fs::read_dir(path)?.count()))
+ let _directory_size = fs::read_dir(path).map(|s| s.count()).ok();
+ (FileType::Directory, _directory_size)
} else {
(FileType::File, None)
};
diff --git a/src/ui/widgets/tui_dirlist_detailed.rs b/src/ui/widgets/tui_dirlist_detailed.rs
index 08777ed..16dec1a 100644
--- a/src/ui/widgets/tui_dirlist_detailed.rs
+++ b/src/ui/widgets/tui_dirlist_detailed.rs
@@ -84,8 +84,8 @@ fn print_entry(
FileType::Directory => entry
.metadata
.directory_size()
- .expect("Directory doesn't have size")
- .to_string(),
+ .map(|n| n.to_string())
+ .unwrap_or("".to_string()),
FileType::File => format::file_size_to_string(entry.metadata.len()),
};
let symlink_string = match entry.metadata.link_type() {
@@ -93,7 +93,7 @@ fn print_entry(
LinkType::Symlink(_) => "-> ",
};
let left_label_original = entry.label();
- let right_label_original = format!(" {}{}", symlink_string, size_string);
+ let right_label_original = format!(" {}{} ", symlink_string, size_string);
let (left_label, right_label) = factor_labels_for_entry(
left_label_original,