cloud_disk_sync/utils/
task.rs1use crate::config::{ConfigManager, SyncTask};
2use std::fs;
3
4pub fn find_task_id(config_manager: &ConfigManager, id_or_name: &str) -> Option<String> {
5 if config_manager.get_task(id_or_name).is_some() {
7 return Some(id_or_name.to_string());
8 }
9
10 for task in config_manager.get_tasks().values() {
12 if task.name == id_or_name {
13 return Some(task.id.clone());
14 }
15 }
16
17 None
18}
19
20pub fn get_task_status(_task: &SyncTask) -> String {
21 "✅ 就绪".to_string()
24}
25
26pub fn remove_task_reports(task_id: &str) -> std::io::Result<()> {
27 let reports_dir = dirs::data_dir()
28 .unwrap_or_else(|| std::path::PathBuf::from("."))
29 .join("disksync")
30 .join("reports");
31
32 if !reports_dir.exists() {
33 return Ok(());
34 }
35
36 for entry in fs::read_dir(reports_dir)? {
39 let entry = entry?;
40 let path = entry.path();
41 if path.is_file() {
42 if let Some(file_name) = path.file_name().and_then(|n| n.to_str()) {
43 if file_name.contains(task_id) {
44 fs::remove_file(path)?;
45 }
46 }
47 }
48 }
49 Ok(())
50}