shark-scan 0.1.1

An async multi-threaded port scanner supporting user specified port ranges, timeout durations, and thread quantity
Documentation
use clap::{CommandFactory, FromArgMatches};
use log::LevelFilter;
use shark_scan::{parser::Args, scanner::scan};

#[tokio::main]
async fn main() {
    let command = Args::command().arg_required_else_help(true);
    let matches = command.get_matches();
    let args = Args::from_arg_matches(&matches).expect("Failed to parse arguments");

    match args.verbosity.as_str() {
        "none" => env_logger::builder()
            .filter_level(LevelFilter::Error)
            .init(),
        "low" => env_logger::builder().filter_level(LevelFilter::Info).init(),
        "high" => env_logger::builder()
            .filter_level(LevelFilter::Trace)
            .init(),
        _ => env_logger::builder()
            .filter_level(LevelFilter::Error)
            .init(),
    }

    scan(args).await;
}