upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src/bin/git_remote_nostr
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2024-09-13 20:40:01 +0100
committerDanConwayDev <DanConwayDev@protonmail.com>2024-09-13 20:40:01 +0100
commitd832abb04887ae3ae6e4d88f2915e3ac6a1fcff8 (patch)
tree5b61cb23ce35c8d3754b9a400d035028c30f3a68 /src/bin/git_remote_nostr
parent8ecf357d9acc9ca2ec79e26a366cd1c07689a0cf (diff)
fix(remote): fetch status reduce line writes
by only removing and rewriting transfer progress
Diffstat (limited to 'src/bin/git_remote_nostr')
-rw-r--r--src/bin/git_remote_nostr/fetch.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/bin/git_remote_nostr/fetch.rs b/src/bin/git_remote_nostr/fetch.rs
index c2c0cb1..206367c 100644
--- a/src/bin/git_remote_nostr/fetch.rs
+++ b/src/bin/git_remote_nostr/fetch.rs
@@ -265,14 +265,17 @@ impl<'a> FetchReporter<'a> {
265 let _ = self.term.write_line(msg); 265 let _ = self.term.write_line(msg);
266 } 266 }
267 } 267 }
268 fn write_transfer_progress(&self, lines_to_clear: usize) { 268 fn count_all_existing_lines(&self) -> usize {
269 self.remote_msgs.len() + self.transfer_progress_msgs.len()
270 }
271 fn just_write_transfer_progress(&self, lines_to_clear: usize) {
269 let _ = self.term.clear_last_lines(lines_to_clear); 272 let _ = self.term.clear_last_lines(lines_to_clear);
270 for msg in &self.transfer_progress_msgs { 273 for msg in &self.transfer_progress_msgs {
271 let _ = self.term.write_line(msg); 274 let _ = self.term.write_line(msg);
272 } 275 }
273 } 276 }
274 fn count_all_existing_lines(&self) -> usize { 277 fn just_count_transfer_progress(&self) -> usize {
275 self.remote_msgs.len() + self.transfer_progress_msgs.len() 278 self.transfer_progress_msgs.len()
276 } 279 }
277 fn process_remote_msg(&mut self, data: &[u8]) { 280 fn process_remote_msg(&mut self, data: &[u8]) {
278 let existing_lines = self.count_all_existing_lines(); 281 let existing_lines = self.count_all_existing_lines();
@@ -300,7 +303,7 @@ impl<'a> FetchReporter<'a> {
300 if self.start_time.is_none() { 303 if self.start_time.is_none() {
301 self.start_time = Some(Instant::now()); 304 self.start_time = Some(Instant::now());
302 } 305 }
303 let existing_lines = self.count_all_existing_lines(); 306 let existing_lines = self.just_count_transfer_progress();
304 let updated = 307 let updated =
305 report_on_transfer_progress(progress_stats, &self.start_time.unwrap(), &self.end_time); 308 report_on_transfer_progress(progress_stats, &self.start_time.unwrap(), &self.end_time);
306 if self.transfer_progress_msgs.len() <= updated.len() { 309 if self.transfer_progress_msgs.len() <= updated.len() {
@@ -311,7 +314,7 @@ impl<'a> FetchReporter<'a> {
311 // reporting on it so we want to keep the old report 314 // reporting on it so we want to keep the old report
312 self.transfer_progress_msgs = updated; 315 self.transfer_progress_msgs = updated;
313 } 316 }
314 self.write_all(existing_lines); 317 self.just_write_transfer_progress(existing_lines);
315 } 318 }
316} 319}
317 320