added json output for further processing using other tools

This commit is contained in:
sreedev
2023-11-14 18:33:40 -05:00
parent 7d386c9420
commit 3e407f69c8
6 changed files with 57 additions and 13 deletions

View File

@@ -3,13 +3,15 @@ use memmap2::Mmap;
use std::fs;
use std::hash::Hasher;
use std::{fs::Metadata, path::PathBuf};
use serde::Serialize;
#[derive(Debug, Clone)]
#[derive(Debug, Clone, Serialize)]
pub struct FileInfo {
pub path: PathBuf,
pub filemeta: Metadata,
pub hash: Option<String>,
pub size: u64,
#[serde(skip)]
pub filemeta: Metadata,
}
impl FileInfo {

View File

@@ -121,8 +121,14 @@ impl Formatter {
return Ok(());
}
let output_table = Self::generate_table(raw, app_args)?;
output_table.printstd();
if app_args.json {
let output_json = serde_json::to_string_pretty(&raw)?;
println!("{}", output_json);
return Ok(());
} else {
let output_table = Self::generate_table(raw, app_args)?;
output_table.printstd();
}
Ok(())
}

View File

@@ -19,8 +19,12 @@ fn main() -> Result<()> {
let results = processor.sizewise()?.hashwise()?;
match app_args.interactive {
false => { Formatter::print(results.files, &app_args)?; }
true => { interactive::init(results.files, &app_args)?; }
false => {
Formatter::print(results.files, &app_args)?;
}
true => {
interactive::init(results.files, &app_args)?;
}
}
Ok(())

View File

@@ -27,6 +27,9 @@ pub struct Params {
/// Follow links while scanning directories
#[arg(long, short)]
pub follow_links: bool,
/// print json output
#[arg(long)]
pub json: bool,
}
impl Params {