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]] [[package]]
name = "upub-web" name = "upub-web"
version = "0.1.0" version = "0.3.0"
dependencies = [ dependencies = [
"apb", "apb",
"base64 0.22.1", "base64 0.22.1",

24
main.rs
View file

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