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