configparser: move set_overrides to hg.rs

Summary:
It is only used by hg.rs. Move it to decouple the core ConfigSet features from
hg's business logic (`--config` flags).

Reviewed By: muirdm

Differential Revision: D42018679

fbshipit-source-id: a33b9adf0217288ec7bea997a6e3b81fb35cc123
This commit is contained in:
Jun Wu 2022-12-14 14:53:51 -08:00 committed by Facebook GitHub Bot
parent 0ce132f975
commit b90a24fedc
2 changed files with 22 additions and 22 deletions

View File

@ -198,26 +198,6 @@ impl ConfigSet {
}
}
/// override config values from a list of --config overrides
pub(crate) fn set_overrides(&mut self, overrides: &[String]) -> crate::Result<()> {
for config_override in overrides {
let equals_pos = config_override
.find('=')
.ok_or_else(|| Error::ParseFlag(config_override.to_string()))?;
let section_name_pair = &config_override[..equals_pos];
let value = &config_override[equals_pos + 1..];
let dot_pos = section_name_pair
.find('.')
.ok_or_else(|| Error::ParseFlag(config_override.to_string()))?;
let section = &section_name_pair[..dot_pos];
let name = &section_name_pair[dot_pos + 1..];
self.set(section, name, Some(value), &"--config".into());
}
Ok(())
}
fn load_file(
&mut self,
path: &Path,

View File

@ -107,7 +107,7 @@ pub fn load(
errors.extend(cfg.load_path(&path, &"--configfile".into()));
}
if let Err(err) = cfg.set_overrides(extra_values) {
if let Err(err) = set_overrides(&mut cfg, extra_values) {
errors.push(err);
}
@ -130,7 +130,7 @@ pub fn load(
cfg.load_path(&path, &"--configfile".into());
}
let _ = cfg.set_overrides(extra_values);
let _ = set_overrides(&mut cfg, extra_values);
Ok(cfg)
}
@ -252,6 +252,26 @@ impl OptionsHgExt for Options {
}
}
/// override config values from a list of --config overrides
fn set_overrides(config: &mut ConfigSet, overrides: &[String]) -> crate::Result<()> {
for config_override in overrides {
let equals_pos = config_override
.find('=')
.ok_or_else(|| Error::ParseFlag(config_override.to_string()))?;
let section_name_pair = &config_override[..equals_pos];
let value = &config_override[equals_pos + 1..];
let dot_pos = section_name_pair
.find('.')
.ok_or_else(|| Error::ParseFlag(config_override.to_string()))?;
let section = &section_name_pair[..dot_pos];
let name = &section_name_pair[dot_pos + 1..];
config.set(section, name, Some(value), &"--config".into());
}
Ok(())
}
impl ConfigSetHgExt for ConfigSet {
/// Load system, user config files.
fn load<S: Into<Text>, N: Into<Text>>(