Compare commits

..

3 Commits

Author SHA1 Message Date
andy.boot 07ffd04950 Increment version
This version includes fix for the -f flag
2021-08-05 08:47:47 +01:00
andy.boot dfa574375b clippy: Fix clippy lints
New rustup adds more lints
2021-08-05 08:47:47 +01:00
andy.boot 9de2e7d723 bugfix: Fix crash when using '-f' flag
The old code was subtly different in the way the root node worked. This
changed in the v0.6.0 version when dependencies were removed. The code
to handle file count was never updated

https://github.com/bootandy/dust/issues/162
2021-07-29 08:54:32 +01:00
7 changed files with 17 additions and 16 deletions
Generated
+1 -1
View File
@@ -157,7 +157,7 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
[[package]] [[package]]
name = "du-dust" name = "du-dust"
version = "0.6.1" version = "0.6.2"
dependencies = [ dependencies = [
"ansi_term 0.12.1", "ansi_term 0.12.1",
"assert_cmd", "assert_cmd",
+1 -1
View File
@@ -1,7 +1,7 @@
[package] [package]
name = "du-dust" name = "du-dust"
description = "A more intuitive version of du" description = "A more intuitive version of du"
version = "0.6.1" version = "0.6.2"
authors = ["bootandy <bootandy@gmail.com>", "nebkor <code@ardent.nebcorp.com>"] authors = ["bootandy <bootandy@gmail.com>", "nebkor <code@ardent.nebcorp.com>"]
edition = "2018" edition = "2018"
+1 -1
View File
@@ -102,7 +102,7 @@ fn walk(dir: PathBuf, permissions_flag: &AtomicBool, walk_data: &WalkData) -> Op
// return walk(entry.path(), permissions_flag, ignore_directories, allowed_filesystems, use_apparent_size, by_filecount, ignore_hidden); // return walk(entry.path(), permissions_flag, ignore_directories, allowed_filesystems, use_apparent_size, by_filecount, ignore_hidden);
if !ignore_file(&entry, walk_data) { if !ignore_file(entry, walk_data) {
if let Ok(data) = entry.file_type() { if let Ok(data) = entry.file_type() {
if data.is_dir() && !data.is_symlink() { if data.is_dir() && !data.is_symlink() {
return walk(entry.path(), permissions_flag, walk_data); return walk(entry.path(), permissions_flag, walk_data);
+5 -5
View File
@@ -125,7 +125,7 @@ pub fn draw_it(
let root_node = option_root_node.unwrap(); let root_node = option_root_node.unwrap();
let num_chars_needed_on_left_most = if by_filecount { let num_chars_needed_on_left_most = if by_filecount {
let max_size = root_node.children.iter().map(|n| n.size).fold(0, max); let max_size = root_node.size;
max_size.separate_with_commas().chars().count() max_size.separate_with_commas().chars().count()
} else { } else {
5 // Under normal usage we need 5 chars to display the size of a directory 5 // Under normal usage we need 5 chars to display the size of a directory
@@ -265,9 +265,9 @@ fn pad_or_trim_filename(node: &DisplayNode, indent: &str, display_data: &Display
// Add spaces after the filename so we can draw the % used bar chart. // Add spaces after the filename so we can draw the % used bar chart.
let name_and_padding = name let name_and_padding = name
+ &(repeat(" ") + " "
.take(display_data.longest_string_length - width) .repeat(display_data.longest_string_length - width)
.collect::<String>()); .as_str();
maybe_trim_filename(name_and_padding, display_data) maybe_trim_filename(name_and_padding, display_data)
} }
@@ -320,7 +320,7 @@ fn get_pretty_size(node: &DisplayNode, is_biggest: bool, display_data: &DisplayD
let size_as_str = node.size.separate_with_commas(); let size_as_str = node.size.separate_with_commas();
let spaces_to_add = let spaces_to_add =
display_data.num_chars_needed_on_left_most - size_as_str.chars().count(); display_data.num_chars_needed_on_left_most - size_as_str.chars().count();
size_as_str + &*repeat(' ').take(spaces_to_add).collect::<String>() size_as_str + " ".repeat(spaces_to_add).as_str()
} else { } else {
format!("{:>5}", human_readable_number(node.size)) format!("{:>5}", human_readable_number(node.size))
}; };
+6 -5
View File
@@ -36,11 +36,12 @@ impl DisplayNode {
} }
pub fn get_children_from_node(&self, is_reversed: bool) -> impl Iterator<Item = DisplayNode> { pub fn get_children_from_node(&self, is_reversed: bool) -> impl Iterator<Item = DisplayNode> {
if is_reversed { // we box to avoid the clippy lint warning
let children: Vec<DisplayNode> = self.children.clone().into_iter().rev().collect(); let out: Box<dyn Iterator<Item = DisplayNode>> = if is_reversed {
children.into_iter() Box::new(self.children.clone().into_iter().rev())
} else { } else {
self.children.clone().into_iter() Box::new(self.children.clone().into_iter())
} };
out
} }
} }
+2 -2
View File
@@ -120,9 +120,9 @@ pub fn get_metadata(d: &Path, _use_apparent_size: bool) -> Option<(u64, Option<(
{ {
Some((md.len(), None)) Some((md.len(), None))
} else { } else {
get_metadata_expensive(&d) get_metadata_expensive(d)
} }
} }
_ => get_metadata_expensive(&d), _ => get_metadata_expensive(d),
} }
} }
+1 -1
View File
@@ -41,7 +41,7 @@ pub fn get_filesystem_devices<'a, P: IntoIterator<Item = &'a PathBuf>>(paths: P)
paths paths
.into_iter() .into_iter()
.filter_map(|p| { .filter_map(|p| {
let meta = get_metadata(&p, false); let meta = get_metadata(p, false);
if let Some((_size, Some((_id, dev)))) = meta { if let Some((_size, Some((_id, dev)))) = meta {
Some(dev) Some(dev)