refactor 5
This commit is contained in:
@@ -12,9 +12,10 @@ use winreg::enums::*;
|
||||
use winreg::RegKey;
|
||||
|
||||
use crate::domain::models::{InstallProgress, InstallTask, TaskEventPayload};
|
||||
use crate::providers::winget_client;
|
||||
use crate::services::essentials_service;
|
||||
use crate::services::log_service::emit_log;
|
||||
use crate::winget::PostInstallStep;
|
||||
use crate::winget::{PostInstallStep, Software};
|
||||
|
||||
pub struct AppState {
|
||||
pub install_tx: mpsc::Sender<InstallTask>,
|
||||
@@ -47,6 +48,7 @@ pub fn create_install_state(handle: AppHandle) -> AppState {
|
||||
0.0,
|
||||
task_version.clone(),
|
||||
None,
|
||||
None,
|
||||
);
|
||||
|
||||
let mut args = vec!["install".to_string()];
|
||||
@@ -66,6 +68,7 @@ pub fn create_install_state(handle: AppHandle) -> AppState {
|
||||
0.0,
|
||||
task_version.clone(),
|
||||
Some("Downloading remote manifest".to_string()),
|
||||
None,
|
||||
);
|
||||
emit_log(
|
||||
&runtime_handle,
|
||||
@@ -116,6 +119,7 @@ pub fn create_install_state(handle: AppHandle) -> AppState {
|
||||
0.0,
|
||||
task_version.clone(),
|
||||
Some("Failed to download or save manifest".to_string()),
|
||||
None,
|
||||
);
|
||||
continue;
|
||||
}
|
||||
@@ -162,6 +166,7 @@ pub fn create_install_state(handle: AppHandle) -> AppState {
|
||||
0.0,
|
||||
task_version.clone(),
|
||||
None,
|
||||
None,
|
||||
);
|
||||
|
||||
let child = Command::new("winget")
|
||||
@@ -280,6 +285,7 @@ pub fn create_install_state(handle: AppHandle) -> AppState {
|
||||
1.0,
|
||||
task_version.clone(),
|
||||
Some("Starting post-installation configuration".to_string()),
|
||||
None,
|
||||
);
|
||||
emit_log(
|
||||
&runtime_handle,
|
||||
@@ -316,11 +322,18 @@ pub fn create_install_state(handle: AppHandle) -> AppState {
|
||||
0.0,
|
||||
task_version.clone(),
|
||||
Some(e.to_string()),
|
||||
None,
|
||||
);
|
||||
"error"
|
||||
}
|
||||
};
|
||||
|
||||
let resolved_software_info = if status_result == "success" {
|
||||
winget_client::get_package_by_id(&runtime_handle, &task_id)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
emit_task_event(
|
||||
&runtime_handle,
|
||||
&log_id,
|
||||
@@ -331,6 +344,7 @@ pub fn create_install_state(handle: AppHandle) -> AppState {
|
||||
1.0,
|
||||
task_version.clone(),
|
||||
Some(format!("Execution finished: {}", status_result)),
|
||||
resolved_software_info,
|
||||
);
|
||||
emit_log(
|
||||
&runtime_handle,
|
||||
@@ -369,6 +383,7 @@ pub async fn install_software(
|
||||
0.0,
|
||||
task.version.clone(),
|
||||
None,
|
||||
None,
|
||||
);
|
||||
state.install_tx.send(task).await.map_err(|e| e.to_string())
|
||||
}
|
||||
@@ -415,6 +430,7 @@ fn spawn_install_stream_reader<R: Read + Send + 'static>(
|
||||
progress: p_val / 100.0,
|
||||
target_version: None,
|
||||
message: None,
|
||||
software_info: None,
|
||||
},
|
||||
);
|
||||
is_progress = true;
|
||||
@@ -442,6 +458,7 @@ fn spawn_install_stream_reader<R: Read + Send + 'static>(
|
||||
progress: (current / total).min(1.0),
|
||||
target_version: None,
|
||||
message: None,
|
||||
software_info: None,
|
||||
},
|
||||
);
|
||||
is_progress = true;
|
||||
@@ -469,6 +486,7 @@ fn emit_task_event(
|
||||
progress: f32,
|
||||
target_version: Option<String>,
|
||||
message: Option<String>,
|
||||
software_info: Option<Software>,
|
||||
) {
|
||||
let _ = handle.emit(
|
||||
"task-event",
|
||||
@@ -481,6 +499,7 @@ fn emit_task_event(
|
||||
progress,
|
||||
target_version: target_version.clone(),
|
||||
message,
|
||||
software_info,
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user