diff options
Diffstat (limited to 'src/git_remote_helper.rs')
| -rw-r--r-- | src/git_remote_helper.rs | 39 |
1 files changed, 24 insertions, 15 deletions
diff --git a/src/git_remote_helper.rs b/src/git_remote_helper.rs index e2796b3..13d6c03 100644 --- a/src/git_remote_helper.rs +++ b/src/git_remote_helper.rs | |||
| @@ -227,21 +227,7 @@ async fn list( | |||
| 227 | 227 | ||
| 228 | let term = console::Term::stderr(); | 228 | let term = console::Term::stderr(); |
| 229 | 229 | ||
| 230 | let mut remote_states = HashMap::new(); | 230 | let remote_states = list_from_remotes(&term, git_repo, &repo_ref.git_server)?; |
| 231 | for url in &repo_ref.git_server { | ||
| 232 | term.write_line(format!("fetching refs list: {url}...").as_str())?; | ||
| 233 | match list_from_remote(git_repo, url) { | ||
| 234 | Ok(remote_state) => { | ||
| 235 | remote_states.insert(url.clone(), remote_state); | ||
| 236 | } | ||
| 237 | Err(error) => { | ||
| 238 | term.write_line( | ||
| 239 | format!("WARNING: failed to list refs from {url} error: {error}").as_str(), | ||
| 240 | )?; | ||
| 241 | } | ||
| 242 | } | ||
| 243 | term.clear_last_lines(1)?; | ||
| 244 | } | ||
| 245 | 231 | ||
| 246 | let state = if let Some(nostr_state) = nostr_state { | 232 | let state = if let Some(nostr_state) = nostr_state { |
| 247 | for (name, value) in &nostr_state.state { | 233 | for (name, value) in &nostr_state.state { |
| @@ -287,6 +273,29 @@ async fn list( | |||
| 287 | Ok(remote_states) | 273 | Ok(remote_states) |
| 288 | } | 274 | } |
| 289 | 275 | ||
| 276 | fn list_from_remotes( | ||
| 277 | term: &console::Term, | ||
| 278 | git_repo: &Repo, | ||
| 279 | git_servers: &Vec<String>, | ||
| 280 | ) -> Result<HashMap<String, HashMap<String, String>>> { | ||
| 281 | let mut remote_states = HashMap::new(); | ||
| 282 | for url in git_servers { | ||
| 283 | term.write_line(format!("fetching refs list: {url}...").as_str())?; | ||
| 284 | match list_from_remote(git_repo, url) { | ||
| 285 | Ok(remote_state) => { | ||
| 286 | remote_states.insert(url.clone(), remote_state); | ||
| 287 | } | ||
| 288 | Err(error) => { | ||
| 289 | term.write_line( | ||
| 290 | format!("WARNING: failed to list refs from {url} error: {error}").as_str(), | ||
| 291 | )?; | ||
| 292 | } | ||
| 293 | } | ||
| 294 | term.clear_last_lines(1)?; | ||
| 295 | } | ||
| 296 | Ok(remote_states) | ||
| 297 | } | ||
| 298 | |||
| 290 | fn list_from_remote( | 299 | fn list_from_remote( |
| 291 | git_repo: &Repo, | 300 | git_repo: &Repo, |
| 292 | git_server_remote_url: &str, | 301 | git_server_remote_url: &str, |