diff options
Diffstat (limited to 'src/bin/git_remote_nostr')
| -rw-r--r-- | src/bin/git_remote_nostr/push.rs | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/bin/git_remote_nostr/push.rs b/src/bin/git_remote_nostr/push.rs index 71afc98..daa7973 100644 --- a/src/bin/git_remote_nostr/push.rs +++ b/src/bin/git_remote_nostr/push.rs | |||
| @@ -540,7 +540,7 @@ impl<'a> PushReporter<'a> { | |||
| 540 | fn write_all(&self, lines_to_clear: usize) { | 540 | fn write_all(&self, lines_to_clear: usize) { |
| 541 | let _ = self.term.clear_last_lines(lines_to_clear); | 541 | let _ = self.term.clear_last_lines(lines_to_clear); |
| 542 | for msg in &self.remote_msgs { | 542 | for msg in &self.remote_msgs { |
| 543 | let _ = self.term.write_line(msg); | 543 | let _ = self.term.write_line(format!("remote: {msg}").as_str()); |
| 544 | } | 544 | } |
| 545 | for msg in &self.negotiation { | 545 | for msg in &self.negotiation { |
| 546 | let _ = self.term.write_line(msg); | 546 | let _ = self.term.write_line(msg); |
| @@ -560,23 +560,27 @@ impl<'a> PushReporter<'a> { | |||
| 560 | + self.update_reference_errors.len() | 560 | + self.update_reference_errors.len() |
| 561 | } | 561 | } |
| 562 | fn process_remote_msg(&mut self, data: &[u8]) { | 562 | fn process_remote_msg(&mut self, data: &[u8]) { |
| 563 | let existing_lines = self.count_all_existing_lines(); | ||
| 564 | if let Ok(data) = str::from_utf8(data) { | 563 | if let Ok(data) = str::from_utf8(data) { |
| 565 | let data = data | 564 | let data = data |
| 566 | .split(['\n', '\r']) | 565 | .split(['\n', '\r']) |
| 567 | .find(|line| !line.is_empty()) | 566 | .map(str::trim) |
| 568 | .unwrap_or("") | 567 | .filter(|line| !line.trim().is_empty()) |
| 569 | .trim(); | 568 | .collect::<Vec<&str>>(); |
| 570 | if !data.is_empty() { | 569 | for data in data { |
| 571 | let msg = format!("remote: {data}"); | 570 | let existing_lines = self.count_all_existing_lines(); |
| 571 | let msg = data.to_string(); | ||
| 572 | if let Some(last) = self.remote_msgs.last() { | 572 | if let Some(last) = self.remote_msgs.last() { |
| 573 | if (last.contains('%') && !last.contains("100%")) | 573 | if (last.contains('%') && !last.contains("100%")) |
| 574 | || last == &msg.replace(", done.", "") | 574 | || last == &msg.replace(", done.", "") |
| 575 | { | 575 | { |
| 576 | self.remote_msgs.pop(); | 576 | self.remote_msgs.pop(); |
| 577 | self.remote_msgs.push(msg); | ||
| 578 | } else { | ||
| 579 | self.remote_msgs.push(msg); | ||
| 577 | } | 580 | } |
| 581 | } else { | ||
| 582 | self.remote_msgs.push(msg); | ||
| 578 | } | 583 | } |
| 579 | self.remote_msgs.push(msg); | ||
| 580 | self.write_all(existing_lines); | 584 | self.write_all(existing_lines); |
| 581 | } | 585 | } |
| 582 | } | 586 | } |