Compare commits

..

2 commits

Author SHA1 Message Date
6a6a340618
fix: don't hook signal handler for cli tasks 2024-07-17 22:29:54 +02:00
65f5301a4f
chore: bump lockfile 2024-07-17 22:29:47 +02:00
2 changed files with 17 additions and 9 deletions

2
Cargo.lock generated
View file

@ -4873,7 +4873,7 @@ dependencies = [
[[package]]
name = "upub-web"
version = "0.1.0"
version = "0.3.0"
dependencies = [
"apb",
"base64 0.22.1",

24
main.rs
View file

@ -167,21 +167,27 @@ async fn init(args: Args, config: upub::Config) {
return;
}
let ctx = upub::Context::new(db, domain, config.clone())
.await.expect("failed creating server context");
#[cfg(feature = "cli")]
if let Mode::Cli { command } = args.command {
cli::run(ctx, command)
.await.expect("failed running cli task");
return;
}
// register signal handler only for long-lasting modes, such as server or worker
let (tx, rx) = tokio::sync::watch::channel(false);
let signals = Signals::new([SIGTERM, SIGINT]).expect("failed registering signal handler");
let handle = signals.handle();
let signals_task = tokio::spawn(handle_signals(signals, tx));
let stop = CancellationToken(rx);
let ctx = upub::Context::new(db, domain, config.clone())
.await.expect("failed creating server context");
match args.command {
#[cfg(feature = "cli")]
Mode::Cli { command } =>
cli::run(ctx, command)
.await.expect("failed running cli task"),
#[cfg(feature = "serve")]
Mode::Serve { bind } =>
routes::serve(ctx, bind, stop)
@ -203,6 +209,8 @@ async fn init(args: Args, config: upub::Config) {
Mode::Config => unreachable!(),
#[cfg(feature = "migrate")]
Mode::Migrate => unreachable!(),
#[cfg(feature = "cli")]
Mode::Cli { .. } => unreachable!(),
}
handle.close();