This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch jonathan/progress
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit 9d3ef2f94fcfe939e2069fa98305b0c3debd7fea
Author: Jonathan Maw <[email protected]>
AuthorDate: Fri May 24 14:06:47 2019 +0100

    Make progress-reporting not print a new line for every update
---
 src/buildstream/_context.py  | 14 ++++++++++++--
 src/buildstream/_progress.py |  2 --
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/buildstream/_context.py b/src/buildstream/_context.py
index f01df7a..8345ec1 100644
--- a/src/buildstream/_context.py
+++ b/src/buildstream/_context.py
@@ -18,6 +18,7 @@
 #        Tristan Van Berkom <[email protected]>
 
 import os
+import sys
 import shutil
 import datetime
 from collections import deque
@@ -169,6 +170,7 @@ class Context():
         self._cascache = None
         self._casquota = None
         self._directory = directory
+        self._last_progress_length = 0
 
     # load()
     #
@@ -560,12 +562,20 @@ class Context():
                           detail=None, silent_nested=False):
         with self.timed_activity(activity_name, unique_id=unique_id,
                                  detail=detail, silent_nested=silent_nested):
+            self._last_progress_length = 0
             progress = Progress(self, activity_name, total=total, 
unique_id=unique_id)
             yield progress
 
     def report_progress(self, message_text, unique_id=None):
-        message = Message(unique_id, MessageType.INFO, message_text)
-        self.message(message)
+        new_len = len(message_text)
+        if self._last_progress_length:
+            message_text = "\b" * (self._last_progress_length) + message_text
+        self._last_progress_length = new_len
+        sys.stderr.write(message_text)
+        sys.stderr.flush()
+        
+        #message = Message(unique_id, MessageType.INFO, message_text)
+        #self.message(message)
 
     # recorded_messages()
     #
diff --git a/src/buildstream/_progress.py b/src/buildstream/_progress.py
index 2ad9e6a..d762f73 100644
--- a/src/buildstream/_progress.py
+++ b/src/buildstream/_progress.py
@@ -49,5 +49,3 @@ class Progress():
             if self._total is not None:
                 message_text += "/" + str(self._total)
             self._context.report_progress(message_text, self._unique_id)
-
-        

Reply via email to