refactor: pull out more methods, remove unused Option

This commit is contained in:
andy.boot
2025-06-04 20:34:10 +01:00
parent 9b2dc4655d
commit 74ffd78901
4 changed files with 82 additions and 66 deletions
+48 -25
View File
@@ -11,6 +11,9 @@ mod progress;
mod utils;
use crate::cli::Cli;
use crate::config::Config;
use crate::display_node::DisplayNode;
use crate::node::FileTime;
use crate::progress::RuntimeErrors;
use clap::Parser;
use dir_walker::WalkData;
@@ -298,32 +301,52 @@ fn main() {
let print_errors = config.get_print_errors(&options);
print_any_errors(print_errors, walk_data.errors);
if let Some(root_node) = tree {
if config.get_output_json(&options) {
OUTPUT_TYPE.with(|wrapped| {
wrapped.replace(output_format);
});
println!("{}", serde_json::to_string(&root_node).unwrap());
} else {
let idd = InitialDisplayData {
short_paths: !config.get_full_paths(&options),
is_reversed: !config.get_reverse(&options),
colors_on: is_colors,
by_filecount,
by_filetime,
is_screen_reader: config.get_screen_reader(&options),
output_format,
bars_on_right: config.get_bars_on_right(&options),
};
print_output(
config,
options,
tree,
walk_data.by_filecount,
by_filetime,
is_colors,
terminal_width,
)
}
draw_it(
idd,
config.get_no_bars(&options),
terminal_width,
&root_node,
config.get_skip_total(&options),
)
}
fn print_output(
config: Config,
options: Cli,
tree: DisplayNode,
by_filecount: bool,
by_filetime: Option<FileTime>,
is_colors: bool,
terminal_width: usize,
) {
let output_format = config.get_output_format(&options);
if config.get_output_json(&options) {
OUTPUT_TYPE.with(|wrapped| {
wrapped.replace(output_format);
});
println!("{}", serde_json::to_string(&tree).unwrap());
} else {
let idd = InitialDisplayData {
short_paths: !config.get_full_paths(&options),
is_reversed: !config.get_reverse(&options),
colors_on: is_colors,
by_filecount,
by_filetime,
is_screen_reader: config.get_screen_reader(&options),
output_format,
bars_on_right: config.get_bars_on_right(&options),
};
draw_it(
idd,
&tree,
config.get_no_bars(&options),
terminal_width,
config.get_skip_total(&options),
)
}
}