From db0c2287190a73dfa17fb69ede7ad3f6ac7d44f0 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Fri, 22 May 2020 14:51:40 +0200 Subject: [PATCH] config/remote: add 'name' to Remote struct and use it as section id, like with User Signed-off-by: Dominik Csapak --- src/api2/config/remote.rs | 8 ++++---- src/config/remote.rs | 6 +++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/api2/config/remote.rs b/src/api2/config/remote.rs index b0bdb26f..7fc45c41 100644 --- a/src/api2/config/remote.rs +++ b/src/api2/config/remote.rs @@ -88,7 +88,7 @@ pub fn list_remotes( }, )] /// Create new remote. -pub fn create_remote(name: String, param: Value) -> Result<(), Error> { +pub fn create_remote(param: Value) -> Result<(), Error> { let _lock = crate::tools::open_file_locked(remote::REMOTE_CFG_LOCKFILE, std::time::Duration::new(10, 0))?; @@ -96,11 +96,11 @@ pub fn create_remote(name: String, param: Value) -> Result<(), Error> { let (mut config, _digest) = remote::config()?; - if let Some(_) = config.sections.get(&name) { - bail!("remote '{}' already exists.", name); + if let Some(_) = config.sections.get(&remote.name) { + bail!("remote '{}' already exists.", remote.name); } - config.set_data(&name, "remote", &remote)?; + config.set_data(&remote.name, "remote", &remote)?; remote::save_config(&config)?; diff --git a/src/config/remote.rs b/src/config/remote.rs index 65fd162a..50c59c6f 100644 --- a/src/config/remote.rs +++ b/src/config/remote.rs @@ -29,6 +29,9 @@ pub const REMOTE_PASSWORD_SCHEMA: Schema = StringSchema::new("Password or auth t #[api( properties: { + name: { + schema: REMOTE_ID_SCHEMA, + }, comment: { optional: true, schema: SINGLE_LINE_COMMENT_SCHEMA, @@ -51,6 +54,7 @@ pub const REMOTE_PASSWORD_SCHEMA: Schema = StringSchema::new("Password or auth t #[derive(Serialize,Deserialize)] /// Remote properties. pub struct Remote { + pub name: String, #[serde(skip_serializing_if="Option::is_none")] pub comment: Option, pub host: String, @@ -66,7 +70,7 @@ fn init() -> SectionConfig { _ => unreachable!(), }; - let plugin = SectionConfigPlugin::new("remote".to_string(), None, obj_schema); + let plugin = SectionConfigPlugin::new("remote".to_string(), Some("name".to_string()), obj_schema); let mut config = SectionConfig::new(&REMOTE_ID_SCHEMA); config.register_plugin(plugin); -- 2.39.5