use std::process::ExitCode;
use tokio_util::sync::CancellationToken;
#[tokio::main(flavor = "multi_thread")]
async fn main() -> ExitCode {
let cancelamento = CancellationToken::new();
let cancelamento_handler = cancelamento.clone();
tokio::spawn(async move {
if let Err(erro) = tokio::signal::ctrl_c().await {
tracing::warn!(?erro, "falha ao instalar handler de ctrl+c");
return;
}
tracing::warn!("SIGINT/Ctrl+C recebido — cancelando tasks em voo");
cancelamento_handler.cancel();
});
let codigo = duckduckgo_search_cli::run(cancelamento).await;
ExitCode::from(codigo as u8)
}