This commit is contained in:
nora 2023-03-28 14:36:32 +02:00
parent 729deb5110
commit 961ba86e59
6 changed files with 129 additions and 27 deletions

View file

@ -1,3 +1,11 @@
#[macro_use]
extern crate tracing;
use std::sync::{
atomic::{AtomicBool, Ordering},
Arc,
};
use cargo_minimize::{Cargo, Parser};
use tracing::{error, Level};
@ -6,7 +14,27 @@ fn main() {
cargo_minimize::init_recommended_tracing_subscriber(Level::INFO);
if let Err(err) = cargo_minimize::minimize(options) {
let cancel = Arc::new(AtomicBool::new(false));
let cancel2 = Arc::clone(&cancel);
let mut ctrl_c_pressed = false;
let result = ctrlc::set_handler(move || {
// If ctrl c was pressed already, kill it now.
if ctrl_c_pressed {
warn!("Process killed");
std::process::exit(130);
}
warn!("Shutting down gracefully, press CTRL-C again to kill");
cancel.store(true, Ordering::SeqCst);
ctrl_c_pressed = true;
});
if let Err(err) = result {
error!("Failed to install CTRL-C handler: {err}");
}
if let Err(err) = cargo_minimize::minimize(options, cancel2) {
error!("An error occured:\n{err}");
}
}