Skip to content

Commit

Permalink
refactor: cleanup -j / --output-json flag
Browse files Browse the repository at this point in the history
Stop -j writing to a file, print to stdout instead.
  • Loading branch information
bootandy committed Jun 18, 2024
1 parent cab250a commit 3d027d3
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 34 deletions.
4 changes: 3 additions & 1 deletion src/display_node.rs
Original file line number Diff line number Diff line change
@@ -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,
Expand Down
43 changes: 12 additions & 31 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -234,18 +229,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 => {
Expand Down Expand Up @@ -302,13 +285,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),
)
}
}
}

Expand All @@ -323,13 +311,6 @@ fn init_rayon(stack_size: &Option<usize>, threads: &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(())
}

fn build_thread_pool(
stack: Option<usize>,
threads: Option<usize>,
Expand Down
3 changes: 1 addition & 2 deletions src/node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 3d027d3

Please sign in to comment.