| 237 | } |
| 238 | |
| 239 | pub fn write_metadata(metadata: &Metadata, log: &Logger, cache_path: Option<PathBuf>) { |
| 240 | if let Some(cache) = cache_path { |
| 241 | let metadata_path = get_metadata_path(cache.clone()); |
| 242 | log.trace(format!("Writing metadata to {}", metadata_path.display())); |
| 243 | fs::write( |
| 244 | metadata_path, |
| 245 | serde_json::to_string_pretty(metadata).unwrap(), |
| 246 | ) |
| 247 | .unwrap_or_else(|err| { |
| 248 | log.warn(format!( |
| 249 | "Metadata cannot be written in cache ({}): {}", |
| 250 | cache.display(), |
| 251 | err |
| 252 | )); |
| 253 | }); |
| 254 | } |
| 255 | } |
| 256 | |
| 257 | pub fn clear_metadata(log: &Logger, path: &str) { |
| 258 | let cache_path = Path::new(path).to_path_buf(); |