Handle missing configurations in `pijul_config`
Dependencies
- [2]
ZSFJT4SFAllow remotes to have a different push and pull address - [3]
67GIAQEUHandle named remotes in pijul remote and remote delete - [4]
Z4PPQZUGRefactor `pijul-config` to support layered configuration - [5]
H4AU6QRPNew config for HTTP remotes - [*]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting).
Change contents
- edit in pijul-config/src/lib.rs at line 12
use log::warn; - edit in pijul-config/src/lib.rs at line 74
let global_config_contents = Global::read_contents(&global_config_path)?;let local_config_contents = Local::read_contents(&local_config_path)?; - edit in pijul-config/src/lib.rs at line 75
// Validate that the configuration sources are correctlet global_config = Global::parse_contents(&global_config_path, &global_config_contents)?;let local_config = Local::parse_contents(&local_config_path, &local_config_contents)?; - replacement in pijul-config/src/lib.rs at line 88
let mut config: Self = Figment::new().merge(Toml::string(&global_config_contents)).merge(Toml::string(&local_config_contents)).extract()?;let mut layers = Figment::new();// 1. Global configlet global_config = match Global::read_contents(&global_config_path) {Ok(contents) => {// Parse the config (and make sure it's valid!)let global_config = Global::parse_contents(&global_config_path, &contents)?;// Add the configuration layer as a stringlayers = layers.merge(Toml::string(&contents));Some(global_config)}Err(error) => {warn!("Unable to read global config file: {error:#?}");None}};// 2. Local configlet local_config = match Local::read_contents(&local_config_path) {Ok(contents) => {// Parse the config (and make sure it's valid!)let local_config = Local::parse_contents(&local_config_path, &contents)?;// Add the configuration layer as a stringlayers = layers.merge(Toml::string(&contents));Some(local_config)}Err(error) => {warn!("Unable to read local config file: {error:#?}");None}}; - edit in pijul-config/src/lib.rs at line 122
// Extract the configurationlet mut config: Self = layers.extract()?; - replacement in pijul-config/src/lib.rs at line 130
config.global_config = Some(global_config);config.local_config = Some(local_config);config.global_config = global_config;config.local_config = local_config;