blackhole-bin 0.6.2

blackhole is a server that responds to any request with http status code 200
Documentation
use anyhow::Result;
use clap::Parser;

use signal_hook::consts::signal::*;
use signal_hook_tokio::Signals;

use args::Args;
use blackhole_bin::logger;
use blackhole_bin::server;
use futures_util::StreamExt;
mod args;

#[tokio::main]
async fn main() -> Result<()> {
    let args = Args::try_parse()?;

    logger::init(args.no_color, args.log_level_filter())?;

    tokio::select! {
        _ = async {
            let mut signals = Signals::new([SIGHUP, SIGTERM, SIGINT, SIGQUIT])?;
            let handle = signals.handle();
            let _ = signals.next().await;
            handle.close();
            Ok::<_, anyhow::Error>(())
        } => {
            eprintln!("Termination signal received, stopping server...");
        },
        res = async move {
            let addr = args.socket_addr()?;
            eprintln!("Start server. addr: {:?}", &addr);
            server::serve(addr).await?;
            Ok::<_, anyhow::Error>(())
        } => {
            eprintln!("Stop server");
            res?
        },
    }
    Ok(())
}