use log::info; use rouille::Response; use crate::utils::{flash::FlashResponse, sbot}; // ROUTE: /settings/scuttlebutt/restart /// Attempt to restart the go-sbot.service process. /// Redirect to the Scuttlebutt settings menu and communicate the outcome of /// the attempt via a flash message. pub fn restart_sbot() -> Response { info!("Restarting go-sbot.service"); let (flash_name, flash_msg) = match sbot::system_sbot_cmd("stop") { // if stop was successful, try to start the process Ok(_) => match sbot::system_sbot_cmd("start") { Ok(_) => ( "flash_name=success".to_string(), "flash_msg=Sbot process has been restarted".to_string(), ), Err(e) => ( "flash_name=error".to_string(), format!("flash_msg=Failed to start the sbot process: {}", e), ), }, Err(e) => ( "flash_name=error".to_string(), format!("flash_msg=Failed to stop the sbot process: {}", e), ), }; // redirect to the scuttlebutt settings menu Response::redirect_303("/settings/scuttlebutt").add_flash(flash_name, flash_msg) }