Merge "releasetools: Fix the diff_worker progress report."

This commit is contained in:
Tao Bao 2017-03-13 19:12:25 +00:00 committed by Gerrit Code Review
commit e5b2ff2a97
1 changed files with 6 additions and 1 deletions

View File

@ -718,6 +718,9 @@ class BlockImageDiff(object):
diff_total = len(diff_queue) diff_total = len(diff_queue)
patches = [None] * diff_total patches = [None] * diff_total
if sys.stdout.isatty():
global diff_done
diff_done = 0
# Using multiprocessing doesn't give additional benefits, due to the # Using multiprocessing doesn't give additional benefits, due to the
# pattern of the code. The diffing work is done by subprocess.call, which # pattern of the code. The diffing work is done by subprocess.call, which
@ -758,7 +761,9 @@ class BlockImageDiff(object):
with lock: with lock:
patches[patch_index] = (xf_index, patch) patches[patch_index] = (xf_index, patch)
if sys.stdout.isatty(): if sys.stdout.isatty():
progress = len(patches) * 100 / diff_total global diff_done
diff_done += 1
progress = diff_done * 100 / diff_total
# '\033[K' is to clear to EOL. # '\033[K' is to clear to EOL.
print(' [%d%%] %s\033[K' % (progress, xf.tgt_name), end='\r') print(' [%d%%] %s\033[K' % (progress, xf.tgt_name), end='\r')
sys.stdout.flush() sys.stdout.flush()