mirror of
https://github.com/bootandy/dust.git
synced 2026-01-31 17:24:24 -08:00
Compare commits
1 Commits
v0.8.1
...
depth_refa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
17fe56bfd2 |
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -148,7 +148,7 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
|
||||
|
||||
[[package]]
|
||||
name = "du-dust"
|
||||
version = "0.8.1"
|
||||
version = "0.8.0"
|
||||
dependencies = [
|
||||
"ansi_term",
|
||||
"assert_cmd",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "du-dust"
|
||||
description = "A more intuitive version of du"
|
||||
version = "0.8.1"
|
||||
version = "0.8.0"
|
||||
authors = ["bootandy <bootandy@gmail.com>", "nebkor <code@ardent.nebcorp.com>"]
|
||||
edition = "2018"
|
||||
readme = "README.md"
|
||||
|
||||
@@ -143,7 +143,7 @@ fn walk(
|
||||
data.is_symlink(),
|
||||
data.is_file(),
|
||||
walk_data.by_filecount,
|
||||
depth,
|
||||
depth + 1,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,13 +84,13 @@ impl DrawData<'_> {
|
||||
}
|
||||
|
||||
// TODO: can we test this?
|
||||
fn generate_bar(&self, node: &DisplayNode, level: usize) -> String {
|
||||
fn generate_bar(&self, node: &DisplayNode) -> String {
|
||||
let chars_in_bar = self.percent_bar.chars().count();
|
||||
let num_bars = chars_in_bar as f32 * self.display_data.percent_size(node);
|
||||
let mut num_not_my_bar = (chars_in_bar as i32) - num_bars as i32;
|
||||
|
||||
let mut new_bar = "".to_string();
|
||||
let idx = 5 - min(4, max(1, level));
|
||||
let idx = 5 - min(4, max(1, node.depth));
|
||||
|
||||
for c in self.percent_bar.chars() {
|
||||
num_not_my_bar -= 1;
|
||||
@@ -181,10 +181,8 @@ fn find_longest_dir_name(
|
||||
}
|
||||
|
||||
fn display_node(node: DisplayNode, draw_data: &DrawData, is_biggest: bool, is_last: bool) {
|
||||
// hacky way of working out how deep we are in the tree
|
||||
let indent = draw_data.get_new_indent(!node.children.is_empty(), is_last);
|
||||
let level = ((indent.chars().count() - 1) / 2) - 1;
|
||||
let bar_text = draw_data.generate_bar(&node, level);
|
||||
let bar_text = draw_data.generate_bar(&node);
|
||||
|
||||
let to_print = format_string(
|
||||
&node,
|
||||
@@ -398,6 +396,7 @@ mod tests {
|
||||
let n = DisplayNode {
|
||||
name: PathBuf::from("/short"),
|
||||
size: 2_u64.pow(12), // This is 4.0K
|
||||
depth: 1,
|
||||
children: vec![],
|
||||
};
|
||||
let indent = "┌─┴";
|
||||
@@ -420,6 +419,7 @@ mod tests {
|
||||
let n = DisplayNode {
|
||||
name: PathBuf::from(name),
|
||||
size: 2_u64.pow(12), // This is 4.0K
|
||||
depth: 1,
|
||||
children: vec![],
|
||||
};
|
||||
let indent = "┌─┴";
|
||||
|
||||
@@ -5,6 +5,7 @@ use std::path::PathBuf;
|
||||
pub struct DisplayNode {
|
||||
pub name: PathBuf, //todo: consider moving to a string?
|
||||
pub size: u64,
|
||||
pub depth: usize,
|
||||
pub children: Vec<DisplayNode>,
|
||||
}
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ pub fn get_all_file_types(top_level_nodes: Vec<Node>, n: usize) -> Option<Displa
|
||||
let remaining = DisplayNode {
|
||||
name: PathBuf::from("(others)"),
|
||||
size: rest.iter().map(|a| a.size).sum(),
|
||||
depth: 1,
|
||||
children: vec![],
|
||||
};
|
||||
|
||||
@@ -62,6 +63,7 @@ pub fn get_all_file_types(top_level_nodes: Vec<Node>, n: usize) -> Option<Displa
|
||||
let result = DisplayNode {
|
||||
name: PathBuf::from("(total)"),
|
||||
size: displayed.iter().map(|a| a.size).sum(),
|
||||
depth: 0,
|
||||
children: displayed,
|
||||
};
|
||||
Some(result)
|
||||
@@ -98,6 +100,7 @@ fn build_by_all_file_types(top_level_nodes: Vec<Node>, counter: &mut HashMap<Str
|
||||
let mut display_node = counter.entry(key.clone()).or_insert(DisplayNode {
|
||||
name: PathBuf::from(key),
|
||||
size: 0,
|
||||
depth: node.depth,
|
||||
children: vec![],
|
||||
});
|
||||
display_node.size += node.size;
|
||||
@@ -141,6 +144,7 @@ fn recursive_rebuilder<'a>(
|
||||
let newnode = DisplayNode {
|
||||
name: current.name.clone(),
|
||||
size: current.size,
|
||||
depth: current.depth,
|
||||
children: new_children,
|
||||
};
|
||||
Some(newnode)
|
||||
|
||||
Reference in New Issue
Block a user