feat(xatu): set CLI exit statuses
This commit was merged in pull request #80.
This commit is contained in:
@@ -1,7 +1,8 @@
|
|||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
use status::ResultExt;
|
use status::ResultExt;
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
use xatu::SourceFile;
|
use std::process::ExitCode;
|
||||||
|
use xatu::{Report, SourceFile};
|
||||||
|
|
||||||
fn is_nix_file(path: &Path) -> bool {
|
fn is_nix_file(path: &Path) -> bool {
|
||||||
path.extension().is_some_and(|extension| extension == "nix")
|
path.extension().is_some_and(|extension| extension == "nix")
|
||||||
@@ -66,9 +67,7 @@ struct Args {
|
|||||||
paths: Vec<PathBuf>,
|
paths: Vec<PathBuf>,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() -> status::Result<()> {
|
fn analyze(args: Args) -> status::Result<Report> {
|
||||||
let args = Args::parse();
|
|
||||||
|
|
||||||
let paths: Vec<PathBuf> = args
|
let paths: Vec<PathBuf> = args
|
||||||
.paths
|
.paths
|
||||||
.into_iter()
|
.into_iter()
|
||||||
@@ -83,8 +82,22 @@ fn main() -> status::Result<()> {
|
|||||||
.flatten()
|
.flatten()
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
let report = xatu::future_sight(files)?;
|
xatu::future_sight(files)
|
||||||
print!("{report}");
|
}
|
||||||
|
|
||||||
Ok(())
|
fn main() -> ExitCode {
|
||||||
|
match analyze(Args::parse()) {
|
||||||
|
Ok(report) if report.is_clean() => {
|
||||||
|
println!("No findings.");
|
||||||
|
ExitCode::SUCCESS
|
||||||
|
}
|
||||||
|
Ok(report) => {
|
||||||
|
print!("{report}");
|
||||||
|
ExitCode::from(1)
|
||||||
|
}
|
||||||
|
Err(error) => {
|
||||||
|
eprintln!("{error}");
|
||||||
|
ExitCode::from(2)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user