Do not panic on empty remotes array

This commit is contained in:
2021-11-20 17:49:22 +01:00
parent c97adefeb4
commit 5f98061581

View File

@@ -74,47 +74,39 @@ fn sync_trees(config: Config) {
process::exit(1); process::exit(1);
})); }));
} else { } else {
match &repo.remotes { if matches!(&repo.remotes, None) || repo.remotes.as_ref().unwrap().len().clone() == 0 {
None => { print_repo_action(
print_repo_action( &repo.name,
&repo.name, "Repository does not have remotes configured, initializing new",
"Repository does not have remotes configured, initializing new", );
); repo_handle = match init_repo(&repo_path) {
repo_handle = match init_repo(&repo_path) { Ok(r) => {
Ok(r) => { print_repo_success(&repo.name, "Repository created");
print_repo_success(&repo.name, "Repository created"); Some(r)
Some(r) }
} Err(e) => {
Err(e) => { print_repo_error(
print_repo_error( &repo.name,
&repo.name, &format!("Repository failed during init: {}", e),
&format!("Repository failed during init: {}", e), );
); None
None
}
} }
} }
Some(r) => { } else {
let first = match r.first() { let first = repo.remotes.as_ref().unwrap().first().unwrap();
Some(e) => e,
None => {
panic!("Repos is an empty array. This is a bug");
}
};
match clone_repo(first, &repo_path) { match clone_repo(first, &repo_path) {
Ok(_) => { Ok(_) => {
print_repo_success(&repo.name, "Repository successfully cloned"); print_repo_success(&repo.name, "Repository successfully cloned");
} }
Err(e) => { Err(e) => {
print_repo_error( print_repo_error(
&repo.name, &repo.name,
&format!("Repository failed during clone: {}", e), &format!("Repository failed during clone: {}", e),
); );
continue; continue;
} }
}; };
}
} }
} }
if let Some(remotes) = &repo.remotes { if let Some(remotes) = &repo.remotes {