| 225 | } |
| 226 | |
| 227 | pub fn write_metadata(metadata: &Metadata, log: &Logger, cache_path: Option<PathBuf>) { |
| 228 | if let Some(cache) = cache_path { |
| 229 | let metadata_path = get_metadata_path(cache.clone()); |
| 230 | log.trace(format!("Writing metadata to {}", metadata_path.display())); |
| 231 | fs::write( |
| 232 | metadata_path, |
| 233 | serde_json::to_string_pretty(metadata).unwrap(), |
| 234 | ) |
| 235 | .unwrap_or_else(|err| { |
| 236 | log.warn(format!( |
| 237 | "Metadata cannot be written in cache ({}): {}", |
| 238 | cache.display(), |
| 239 | err |
| 240 | )); |
| 241 | }); |
| 242 | } |
| 243 | } |
| 244 | |
| 245 | pub fn clear_metadata(log: &Logger, path: &str) { |
| 246 | let cache_path = Path::new(path).to_path_buf(); |