nyx-scanner 0.1.1

A CLI security scanner for automating vulnerability checks
pub mod clean;
pub mod index;
pub mod list;
pub mod scan;

use crate::cli::Commands;
use crate::errors::NyxResult;
use crate::patterns::Severity;
use crate::utils::config::Config;
use std::path::Path;

pub fn handle_command(
    command: Commands,
    database_dir: &Path,
    config: &mut Config,
) -> NyxResult<()> {
    match command {
        Commands::Scan {
            path,
            no_index,
            rebuild_index,
            format,
            high_only,
        } => {
            if high_only {
                config.scanner.min_severity = Severity::High
            };

            scan::handle(&path, no_index, rebuild_index, format, database_dir, config)
        }
        Commands::Index { action } => index::handle(action, database_dir, config),
        Commands::List { verbose } => list::handle(verbose, database_dir),
        Commands::Clean { project, all } => clean::handle(project, all, database_dir),
    }
}