download file
This commit is contained in:
@@ -218,12 +218,39 @@ pub fn run() {
|
|||||||
|
|
||||||
let mut args = vec!["install".to_string()];
|
let mut args = vec!["install".to_string()];
|
||||||
let display_cmd: String;
|
let display_cmd: String;
|
||||||
|
let mut temp_manifest_path: Option<PathBuf> = None;
|
||||||
|
|
||||||
if use_manifest && manifest_url.is_some() {
|
if use_manifest && manifest_url.is_some() {
|
||||||
let url = manifest_url.unwrap();
|
let url = manifest_url.unwrap();
|
||||||
args.push("--manifest".to_string());
|
|
||||||
args.push(url.clone());
|
|
||||||
display_cmd = format!("Winget Install (Manifest): {} from {}", task_id, url);
|
display_cmd = format!("Winget Install (Manifest): {} from {}", task_id, url);
|
||||||
|
emit_log(&handle, &log_id, &display_cmd, "Downloading remote manifest...", "info");
|
||||||
|
|
||||||
|
let client = reqwest::Client::new();
|
||||||
|
match client.get(&url).timeout(std::time::Duration::from_secs(15)).send().await {
|
||||||
|
Ok(resp) if resp.status().is_success() => {
|
||||||
|
if let Ok(content) = resp.text().await {
|
||||||
|
let temp_dir = std::env::temp_dir();
|
||||||
|
let file_name = format!("winget_tmp_{}.yaml", chrono::Local::now().timestamp_millis());
|
||||||
|
let local_path = temp_dir.join(file_name);
|
||||||
|
if fs::write(&local_path, content).is_ok() {
|
||||||
|
args.push("--manifest".to_string());
|
||||||
|
args.push(local_path.to_string_lossy().to_string());
|
||||||
|
temp_manifest_path = Some(local_path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
|
||||||
|
if temp_manifest_path.is_none() {
|
||||||
|
emit_log(&handle, &log_id, "Error", "Failed to download or save manifest.", "error");
|
||||||
|
let _ = handle.emit("install-status", InstallProgress {
|
||||||
|
id: task_id.clone(),
|
||||||
|
status: "error".to_string(),
|
||||||
|
progress: 0.0,
|
||||||
|
});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
args.push("--id".to_string());
|
args.push("--id".to_string());
|
||||||
args.push(task_id.clone());
|
args.push(task_id.clone());
|
||||||
|
|||||||
Reference in New Issue
Block a user