Dopplungen konsolidiert: settings.json-Permissions-Helfer, pool.json-Lesen über read_pool, gemeinsame Helfer für Pool-Anlage, Projekt-Config, Icon-Übernahme und Running-Guard

This commit is contained in:
marcus hinz
2026-07-22 12:58:38 +02:00
parent f7a99b1176
commit 513e1a768f
5 changed files with 208 additions and 231 deletions
+11 -8
View File
@@ -61,13 +61,19 @@ pub(crate) fn add_project(path: String) -> Result<(), String> {
add_project_in(&Paths::real(), &path)
}
/// Umbau-Sperre: eine laufende Session des Projekts zuerst beenden.
fn ensure_not_running(project: &str) -> Result<(), String> {
if is_running(project) {
let name = display_name_in(&Paths::real(), project)?;
return Err(format!("{name} läuft noch — erst beenden"));
}
Ok(())
}
/// Projektordner neu zuordnen; bei laufender Session gesperrt.
#[tauri::command]
pub(crate) fn set_project_dir(project: String, dir: String) -> Result<(), String> {
if is_running(&project) {
let name = display_name_in(&Paths::real(), &project)?;
return Err(format!("{name} läuft noch — erst beenden"));
}
ensure_not_running(&project)?;
set_project_dir_in(&Paths::real(), &project, &dir)
}
@@ -96,10 +102,7 @@ pub(crate) fn delete_project_scoped(
scope: String,
delete_work_dirs: bool,
) -> Result<(), String> {
if is_running(&project) {
let name = display_name_in(&Paths::real(), &project)?;
return Err(format!("{name} läuft noch — erst beenden"));
}
ensure_not_running(&project)?;
delete_project_scoped_in(&Paths::real(), &project, &scope, delete_work_dirs)
}