Adding more slash commands
This commit is contained in:
+28
-3
@@ -123,7 +123,32 @@ pub async fn rebuild_and_restart(
|
||||
workspace_root.display()
|
||||
);
|
||||
|
||||
// 3. Build the server binary, matching the current build profile so the
|
||||
// 3. Rebuild the frontend bundle so rust-embed picks up the latest assets.
|
||||
let frontend_dir = workspace_root.join("frontend");
|
||||
if frontend_dir.join("package.json").exists() {
|
||||
slog!("[rebuild] Building frontend");
|
||||
let fe_output = tokio::task::spawn_blocking({
|
||||
let frontend_dir = frontend_dir.clone();
|
||||
move || {
|
||||
std::process::Command::new("npm")
|
||||
.args(["run", "build"])
|
||||
.current_dir(&frontend_dir)
|
||||
.output()
|
||||
}
|
||||
})
|
||||
.await
|
||||
.map_err(|e| format!("Frontend build task panicked: {e}"))?
|
||||
.map_err(|e| format!("Failed to run npm run build: {e}"))?;
|
||||
|
||||
if !fe_output.status.success() {
|
||||
let stderr = String::from_utf8_lossy(&fe_output.stderr);
|
||||
slog!("[rebuild] Frontend build failed:\n{stderr}");
|
||||
return Err(format!("Frontend build failed:\n{stderr}"));
|
||||
}
|
||||
slog!("[rebuild] Frontend build succeeded");
|
||||
}
|
||||
|
||||
// 4. Build the server binary, matching the current build profile so the
|
||||
// re-exec via current_exe() picks up the new binary.
|
||||
let build_args: Vec<&str> = if cfg!(debug_assertions) {
|
||||
vec!["build", "-p", "storkit"]
|
||||
@@ -152,14 +177,14 @@ pub async fn rebuild_and_restart(
|
||||
|
||||
slog!("[rebuild] Build succeeded, re-execing with new binary");
|
||||
|
||||
// 4. Send shutdown notification before replacing the process so that chat
|
||||
// 5. Send shutdown notification before replacing the process so that chat
|
||||
// participants know the bot is going offline. Best-effort only — we
|
||||
// do not abort the rebuild if the send fails.
|
||||
if let Some(n) = notifier {
|
||||
n.notify(ShutdownReason::Rebuild).await;
|
||||
}
|
||||
|
||||
// 5. Re-exec with the new binary.
|
||||
// 6. Re-exec with the new binary.
|
||||
// Use the cargo output path rather than current_exe() so that rebuilds
|
||||
// inside Docker work correctly — the running binary may be installed at
|
||||
// /usr/local/bin/storkit (read-only) while cargo writes the new binary
|
||||
|
||||
Reference in New Issue
Block a user