(project: &Project)
| 187 | } |
| 188 | |
| 189 | pub fn write_project(project: &Project) -> Result<(), AppError> { |
| 190 | let paths = fw_path()?; |
| 191 | paths.ensure_base_exists()?; |
| 192 | |
| 193 | let mut project_path = paths.projects; |
| 194 | project_path.push(PathBuf::from(&project.project_config_path)); |
| 195 | std::fs::create_dir_all(&project_path) |
| 196 | .map_err(|e| AppError::RuntimeError(format!("Failed to create project config path '{}'. {}", project_path.to_string_lossy(), e)))?; |
| 197 | |
| 198 | let mut project_file_path = project_path; |
| 199 | project_file_path.push(&project.name); |
| 200 | |
| 201 | let mut buffer: File = File::create(&project_file_path) |
| 202 | .map_err(|e| AppError::RuntimeError(format!("Failed to create project config file '{}'. {}", project_file_path.to_string_lossy(), e)))?; |
| 203 | let serialized = toml::to_string_pretty(&project)?; |
| 204 | |
| 205 | write!(buffer, "{}", CONF_MODE_HEADER)?; |
| 206 | write!(buffer, "{}", serialized)?; |
| 207 | write_example(&mut buffer, Project::example())?; |
| 208 | Ok(()) |
| 209 | } |
| 210 | |
| 211 | impl Config { |
| 212 | pub fn actual_path_to_project(&self, project: &Project) -> PathBuf { |
no test coverage detected