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:
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user