| 111 | } |
| 112 | |
| 113 | pub fn write_project_config(project_path: &str, path: &Path, content: &str) -> Result<(), String> { |
| 114 | let canonical_project = Path::new(project_path) |
| 115 | .canonicalize() |
| 116 | .map_err(|e| format!("Invalid project path: {e}"))?; |
| 117 | validate_project_config_target(&canonical_project, path)?; |
| 118 | write_config_atomic(path, content, Some(&canonical_project)) |
| 119 | } |
| 120 | |
| 121 | fn validate_project_config_target(canonical_project: &Path, path: &Path) -> Result<(), String> { |
| 122 | let expected_config = canonical_project |