use std::path::{Path, PathBuf};
pub(super) fn extract_directory_name(path: &Path) -> Option<String> {
let name = path.file_name().and_then(|n| n.to_str())?;
if name == "metadata.json" || name == "metadata.desktop" {
return path
.parent()
.and_then(|p| p.file_name())
.and_then(|n| n.to_str())
.map(|s| s.to_string());
}
Some(name.to_string())
}
pub(super) fn resolve_component_path(path: PathBuf) -> PathBuf {
let name = path.file_name().and_then(|n| n.to_str()).unwrap_or("");
if (name == "metadata.json" || name == "metadata.desktop")
&& let Some(parent) = path.parent()
{
return parent.to_path_buf();
}
path
}
pub(super) fn registry_installed_file_path(installed_path: &Path) -> String {
if installed_path.is_file() {
installed_path.to_string_lossy().to_string()
} else {
format!("{}/metadata.json", installed_path.to_string_lossy())
}
}
pub(super) fn extract_date_from_iso(iso: &str) -> String {
iso.split('T').next().unwrap_or(iso).to_string()
}