Don't add repo if it's already tracked

This commit is contained in:
Thom Dickson 2021-12-16 21:12:30 -05:00
parent cab4deca11
commit a2f86770d1
Signed by: boots
GPG Key ID: 40BE2AF8EBF8D2BB
2 changed files with 10 additions and 4 deletions

View File

@ -13,7 +13,7 @@ pub struct Config {
pub repositories: Vec<Repository>,
}
#[derive(Debug, Serialize, Deserialize)]
#[derive(Debug, Eq, PartialEq, Serialize, Deserialize)]
/// The internal representation of a single repository
pub struct Repository {
name: String,

View File

@ -116,11 +116,17 @@ pub fn run(state: State, mut config: Config) -> Result<(), Box<dyn Error>> {
println!("{}", config.to_string().unwrap());
}
Some(Cmd::Add) => {
config.repositories.push(Repository::new(match state.url {
let repo = Repository::new(match state.url {
Some(x) => x,
None => String::new(),
}));
config.save_config()?;
});
if let None = config.repositories.iter().find(|x| **x == repo) {
config.repositories.push(repo);
config.save_config()?;
println!("Repository has been added");
} else {
println!("Repository is already being tracked");
}
}
Some(x) => {
println!("{:?} hasn't been implemented yet!", x)