diff --git a/src/api/system.rs b/src/api/system.rs index 286550e..2b160d6 100644 --- a/src/api/system.rs +++ b/src/api/system.rs @@ -450,13 +450,25 @@ fn stream_open_agent_update() -> impl Stream {} + Ok(output) => { + let stderr = String::from_utf8_lossy(&output.stderr); + yield Ok(Event::default().data(serde_json::to_string(&UpdateProgressEvent { + event_type: "error".to_string(), + message: format!("Failed to fetch: {}", stderr), + progress: None, + }).unwrap())); + return; + } + Err(e) => { + yield Ok(Event::default().data(serde_json::to_string(&UpdateProgressEvent { + event_type: "error".to_string(), + message: format!("Failed to run git fetch: {}", e), + progress: None, + }).unwrap())); + return; + } } // Get the latest tag @@ -627,45 +639,21 @@ fn stream_open_agent_update() -> impl Stream { - // Wait a moment for the service to start - tokio::time::sleep(tokio::time::Duration::from_secs(2)).await; - - yield Ok(Event::default().data(serde_json::to_string(&UpdateProgressEvent { - event_type: "complete".to_string(), - message: format!("Open Agent updated to {} successfully!", latest_tag), - progress: Some(100), - }).unwrap())); - } - Ok(output) => { - let stderr = String::from_utf8_lossy(&output.stderr); - yield Ok(Event::default().data(serde_json::to_string(&UpdateProgressEvent { - event_type: "error".to_string(), - message: format!("Failed to restart service: {}", stderr), - progress: None, - }).unwrap())); - } - Err(e) => { - yield Ok(Event::default().data(serde_json::to_string(&UpdateProgressEvent { - event_type: "error".to_string(), - message: format!("Failed to restart service: {}", e), - progress: None, - }).unwrap())); - } - } } }