earlier check for stop signal
This commit is contained in:
parent
e86b11d058
commit
3bf5d96e04
1 changed files with 27 additions and 23 deletions
50
src/main.rs
50
src/main.rs
|
|
@ -25,7 +25,7 @@ fn main() {
|
||||||
let stop_ctrlc = stop.clone();
|
let stop_ctrlc = stop.clone();
|
||||||
ctrlc::set_handler(move || {
|
ctrlc::set_handler(move || {
|
||||||
stop_ctrlc.store(true, Ordering::SeqCst);
|
stop_ctrlc.store(true, Ordering::SeqCst);
|
||||||
info!("stopping after chunk ...");
|
info!("stopping as soon as possible ...");
|
||||||
})
|
})
|
||||||
.expect("Error setting Ctrl-C handler");
|
.expect("Error setting Ctrl-C handler");
|
||||||
|
|
||||||
|
|
@ -48,29 +48,33 @@ fn main() {
|
||||||
.interact()
|
.interact()
|
||||||
.map_or(None, |b| b.then_some(state))
|
.map_or(None, |b| b.then_some(state))
|
||||||
})
|
})
|
||||||
.unwrap_or_else(|| match AppState::from_args(&args, &agent) {
|
.unwrap_or_else(|| {
|
||||||
Ok(state) => {
|
stop.load(Ordering::SeqCst).then(|| exit(0));
|
||||||
state.save().unwrap();
|
|
||||||
state
|
|
||||||
}
|
|
||||||
Err(e) => {
|
|
||||||
if let Some(cause) = match e {
|
|
||||||
ureq::Error::StatusCode(403) => Some("Alias ID"),
|
|
||||||
ureq::Error::Io(_) => Some("URL"),
|
|
||||||
_ => None,
|
|
||||||
} {
|
|
||||||
println!(
|
|
||||||
"{} probably wrong: {} – {:?}",
|
|
||||||
style("Error!").red(),
|
|
||||||
style(cause).cyan(),
|
|
||||||
style(e.to_string()).yellow()
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
error!("unknown error: {e}");
|
|
||||||
println!("{}", style("Unknown Error!").red());
|
|
||||||
}
|
|
||||||
|
|
||||||
exit(1);
|
match AppState::from_args(&args, &agent) {
|
||||||
|
Ok(state) => {
|
||||||
|
state.save().unwrap();
|
||||||
|
state
|
||||||
|
}
|
||||||
|
Err(e) => {
|
||||||
|
if let Some(cause) = match e {
|
||||||
|
ureq::Error::StatusCode(403) => Some("Alias ID"),
|
||||||
|
ureq::Error::Io(_) => Some("URL"),
|
||||||
|
_ => None,
|
||||||
|
} {
|
||||||
|
println!(
|
||||||
|
"{} probably wrong: {} – {:?}",
|
||||||
|
style("Error!").red(),
|
||||||
|
style(cause).cyan(),
|
||||||
|
style(e.to_string()).yellow()
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
error!("unknown error: {e}");
|
||||||
|
println!("{}", style("Unknown Error!").red());
|
||||||
|
}
|
||||||
|
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue