diff options
author | andy.boot <bootandy@gmail.com> | 2024-05-02 23:27:48 +0100 |
---|---|---|
committer | andy.boot <bootandy@gmail.com> | 2024-05-02 23:27:48 +0100 |
commit | c03943613397f0be64187cd01dab231295a61964 (patch) | |
tree | 143943105c3b8bd86220477a0596f1b9806bcb33 | |
parent | 2c34c38b29b06357430ad27c18328b4af60cb9a5 (diff) |
refactor: cleanup -j / --output-json flagclean_json
Stop -j writing to a file, print to stdout instead.
-rw-r--r-- | src/display_node.rs | 4 | ||||
-rw-r--r-- | src/main.rs | 43 | ||||
-rw-r--r-- | src/node.rs | 3 |
3 files changed, 16 insertions, 34 deletions
diff --git a/src/display_node.rs b/src/display_node.rs index 4ef1025..7f1f627 100644 --- a/src/display_node.rs +++ b/src/display_node.rs @@ -1,6 +1,8 @@ use std::path::PathBuf; -#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone)] +use serde::Serialize; + +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Serialize)] pub struct DisplayNode { // Note: the order of fields in important here, for PartialEq and PartialOrd pub size: u64, diff --git a/src/main.rs b/src/main.rs index b2fc8a8..010e6f5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -39,11 +39,6 @@ use terminal_size::{terminal_size, Height, Width}; use utils::get_filesystem_devices; use utils::simplify_dir_names; -use crate::node::Node; -use chrono::Local; -use std::fs::File; -use std::io::Write; - static DEFAULT_NUMBER_OF_LINES: usize = 30; static DEFAULT_TERMINAL_WIDTH: usize = 80; @@ -233,18 +228,6 @@ fn main() { let top_level_nodes = walk_it(simplified_dirs, &walk_data); - if config.get_output_json(&options) { - let datetime = Local::now().format("%Y%m%d%H%M%S").to_string(); - let output_filename = format!("node-{}.json", datetime); - let result = output_json(&output_filename, &top_level_nodes); - match result { - Ok(..) => {} - Err(err) => { - eprintln!("Error: {}", err) - } - } - } - let tree = match summarize_file_types { true => get_all_file_types(&top_level_nodes, number_of_lines), false => { @@ -301,13 +284,18 @@ fn main() { output_format, bars_on_right: config.get_bars_on_right(&options), }; - draw_it( - idd, - config.get_no_bars(&options), - terminal_width, - &root_node, - config.get_skip_total(&options), - ) + + if config.get_output_json(&options) { + println!("{}", serde_json::to_string(&root_node).unwrap()); + } else { + draw_it( + idd, + config.get_no_bars(&options), + terminal_width, + &root_node, + config.get_skip_total(&options), + ) + } } } @@ -342,10 +330,3 @@ fn init_rayon(stack_size: &Option<usize>) { } } } - -fn output_json(output_filename: &str, top_level_nodes: &Vec<Node>) -> std::io::Result<()> { - let serialized: String = serde_json::to_string(&top_level_nodes).unwrap(); - let mut file = File::create(output_filename)?; - file.write_all(serialized.as_bytes())?; - Ok(()) -} diff --git a/src/node.rs b/src/node.rs index 522e1bb..78ecbf0 100644 --- a/src/node.rs +++ b/src/node.rs @@ -3,11 +3,10 @@ use crate::utils::is_filtered_out_due_to_invert_regex; use crate::utils::is_filtered_out_due_to_regex; use regex::Regex; -use serde::Serialize; use std::cmp::Ordering; use std::path::PathBuf; -#[derive(Debug, Eq, Clone, Serialize)] +#[derive(Debug, Eq, Clone)] pub struct Node { pub name: PathBuf, pub size: u64, |