Merge pull request #93 from bootandy/ab-fixes

Ab various minor fixes
This commit is contained in:
andy.boot
2020-06-02 21:04:20 +01:00
committed by GitHub
3 changed files with 34 additions and 16 deletions
+8 -7
View File
@@ -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 name_and_padding = name
+ &(repeat(" ")
.take(display_data.longest_string_length - width)
.collect::<String>());
let (percents, name_and_padding) = if percent_bar != "" {
let percents = format!("{}{:>4}", percent_bar, percent_size_str);
let percents = if percent_bar != "" {
format!("{}{:>4}", percent_bar, percent_size_str)
let name_and_padding = name
+ &(repeat(" ")
.take(display_data.longest_string_length - width)
.collect::<String>());
(percents, name_and_padding)
} else {
"".into()
("".into(), name)
};
let pretty_size = if is_biggest && display_data.colors_on {
+14 -9
View File
@@ -20,15 +20,20 @@ static DEFAULT_NUMBER_OF_LINES: usize = 30;
#[cfg(windows)]
fn init_color(no_color: bool) -> bool {
// Required for windows 10
// Fails to resolve for windows 8 so disable color
match ansi_term::enable_ansi_support() {
Ok(_) => no_color,
Err(_) => {
eprintln!(
"This version of Windows does not support ANSI colors, setting no_color flag"
);
true
// 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() {
Ok(_) => no_color,
Err(_) => {
eprintln!(
"This version of Windows does not support ANSI colors, setting no_color flag"
);
true
}
}
}
}
+12
View File
@@ -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();