caio.co/de/caca

Make every metadata config field optional

Id
9ab310b5a0824245a820ac6a5be51b16a23b2c78
Author
Caio
Commit time
2024-02-29T13:30:26+01:00

Modified caca/src/config.rs

@@ -109,16 +109,16

#[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

@@ -195,7 +195,14

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()
};