From: Ruben Beltran del Rio Date: Fri, 8 Mar 2024 23:48:11 +0000 (+0100) Subject: Add remote management X-Git-Tag: 7.0.0~41 X-Git-Url: https://git.r.bdr.sh/rbdr/blog/commitdiff_plain/36a4680d18de012e2e5c732f9db161dafa884344 Add remote management --- diff --git a/src/command/add_remote.rs b/src/command/add_remote.rs index c98330f..ad7be83 100644 --- a/src/command/add_remote.rs +++ b/src/command/add_remote.rs @@ -1,3 +1,4 @@ +use std::fs::{create_dir_all, write}; use std::io::Result; use crate::configuration::Configuration; @@ -14,8 +15,10 @@ impl super::Command for AddRemote { vec![] } - fn execute(&self, input: Option<&String>, _: &Configuration, _: &String) -> Result<()> { - println!("Add Remote: {:?}!", input); + fn execute(&self, input: Option<&String>, configuration: &Configuration, _: &String) -> Result<()> { + create_dir_all(&configuration.config_directory)?; + let input = input.expect("You must provide a location for the remote."); + write(&configuration.remote_config, input)?; return Ok(()) } diff --git a/src/command/remove_remote.rs b/src/command/remove_remote.rs index 8188beb..b2f554c 100644 --- a/src/command/remove_remote.rs +++ b/src/command/remove_remote.rs @@ -1,3 +1,4 @@ +use std::fs::remove_file; use std::io::Result; use crate::configuration::Configuration; @@ -14,8 +15,10 @@ impl super::Command for RemoveRemote { vec![] } - fn execute(&self, input: Option<&String>, _: &Configuration, _: &String) -> Result<()> { - println!("Remove Remote: {:?}!", input); + fn execute(&self, _: Option<&String>, configuration: &Configuration, _: &String) -> Result<()> { + if configuration.remote_config.exists() { + remove_file(&configuration.remote_config)?; + } return Ok(()) }