Make every metadata config field optional
- Id
- 9ab310b5a0824245a820ac6a5be51b16a23b2c78
- Author
- Caio
- Commit time
- 2024-02-29T13:30:26+01:00
Modified caca/src/config.rs
#[derive(Debug, Clone)]
pub(crate) struct MetadataConfig {
- pub spec: String,
- pub filename: PathBuf,
+ pub spec: Option<String>,
+ pub filename: Option<PathBuf>,
}
impl Default for MetadataConfig {
fn default() -> Self {
Self {
- spec: "HEAD".to_string(),
+ spec: Some("HEAD".to_string()),
// gitconfig is not quite .ini eh
- filename: PathBuf::from(".config/caca.ini"),
+ filename: Some(PathBuf::from(".config/caca.ini")),
}
}
}
Modified caca/src/repo/mod.rs
let metadata = if let Some(ref conf) = config.metadata_config {
buf.clear();
- read_metadata(urso, &conf.spec, &conf.filename, &mut buf)
+ read_metadata(
+ urso,
+ conf.spec.as_deref().unwrap_or("HEAD"),
+ conf.filename
+ .as_deref()
+ .unwrap_or(std::path::Path::new(".config/caca.ini")),
+ &mut buf,
+ )
} else {
Metadata::default()
};