upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/bin/git_remote_nostr/push.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/git_remote_nostr/push.rs')
-rw-r--r--src/bin/git_remote_nostr/push.rs20
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 }