mirror of
https://github.com/bootandy/dust.git
synced 2026-06-08 11:29:05 +03:00
+5
-4
@@ -285,15 +285,16 @@ pub fn format_string(
|
||||
let name = get_printable_name(&node.name, display_data.short_paths);
|
||||
let width = get_unicode_width_of_indent_and_name(indent, &name);
|
||||
|
||||
let (percents, name_and_padding) = if percent_bar != "" {
|
||||
let percents = format!("│{} │ {:>4}", percent_bar, percent_size_str);
|
||||
|
||||
let name_and_padding = name
|
||||
+ &(repeat(" ")
|
||||
.take(display_data.longest_string_length - width)
|
||||
.collect::<String>());
|
||||
|
||||
let percents = if percent_bar != "" {
|
||||
format!("│{} │ {:>4}", percent_bar, percent_size_str)
|
||||
(percents, name_and_padding)
|
||||
} else {
|
||||
"".into()
|
||||
("".into(), name)
|
||||
};
|
||||
|
||||
let pretty_size = if is_biggest && display_data.colors_on {
|
||||
|
||||
@@ -20,6 +20,10 @@ static DEFAULT_NUMBER_OF_LINES: usize = 30;
|
||||
|
||||
#[cfg(windows)]
|
||||
fn init_color(no_color: bool) -> bool {
|
||||
// If no color is already set do not print a warning message
|
||||
if no_color {
|
||||
true
|
||||
} else {
|
||||
// Required for windows 10
|
||||
// Fails to resolve for windows 8 so disable color
|
||||
match ansi_term::enable_ansi_support() {
|
||||
@@ -31,6 +35,7 @@ fn init_color(no_color: bool) -> bool {
|
||||
true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(not(windows))]
|
||||
|
||||
@@ -32,6 +32,16 @@ pub fn test_basic_output() {
|
||||
assert!(output.contains("a_file "));
|
||||
}
|
||||
|
||||
#[test]
|
||||
pub fn test_output_no_bars_means_no_excess_spaces() {
|
||||
let mut cmd = Command::cargo_bin("dust").unwrap();
|
||||
let output = cmd.arg("-b").arg("src/test_dir/").unwrap().stdout;
|
||||
let output = str::from_utf8(&output).unwrap();
|
||||
// If bars are not being shown we don't need to pad the output with spaces
|
||||
assert!(output.contains("many"));
|
||||
assert!(!output.contains("many "));
|
||||
}
|
||||
|
||||
// "windows" result data can vary by host (size seems to be variable by one byte); fix code vs test and re-enable
|
||||
#[cfg_attr(target_os = "windows", ignore)]
|
||||
#[test]
|
||||
@@ -138,6 +148,8 @@ fn main_output_long_paths() -> String {
|
||||
#[cfg_attr(target_os = "windows", ignore)]
|
||||
#[test]
|
||||
pub fn test_apparent_size() {
|
||||
copy_test_data("src/test_dir");
|
||||
|
||||
let mut cmd = Command::cargo_bin("dust").unwrap();
|
||||
let assert = cmd.arg("-c").arg("-s").arg("src/test_dir").unwrap().stdout;
|
||||
let output = str::from_utf8(&assert).unwrap();
|
||||
|
||||
Reference in New Issue
Block a user