diff --git a/core/startos/src/lib.rs b/core/startos/src/lib.rs index 8d4f831bf..997a7199f 100644 --- a/core/startos/src/lib.rs +++ b/core/startos/src/lib.rs @@ -292,6 +292,13 @@ pub fn package() -> ParentHandler { .no_display() .with_call_remote::(), ) + .subcommand( + "rebuild", + from_fn_async(service::rebuild) + .with_metadata("sync_db", Value::Bool(true)) + .no_display() + .with_call_remote::(), + ) .subcommand("logs", logs::package_logs()) .subcommand( "logs", diff --git a/core/startos/src/service/mod.rs b/core/startos/src/service/mod.rs index 1e61b1191..37579c03b 100644 --- a/core/startos/src/service/mod.rs +++ b/core/startos/src/service/mod.rs @@ -589,6 +589,15 @@ impl ServiceActorSeed { } } +#[derive(Deserialize, Serialize, Parser, TS)] +pub struct RebuildParams { + pub id: PackageId, +} +pub async fn rebuild(ctx: RpcContext, RebuildParams { id }: RebuildParams) -> Result<(), Error> { + ctx.services.load(&ctx, &id, LoadDisposition::Retry).await?; + Ok(()) +} + #[derive(Deserialize, Serialize, Parser, TS)] pub struct ConnectParams { pub id: PackageId,