Do not panic on empty remotes array
This commit is contained in:
68
src/lib.rs
68
src/lib.rs
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user