diff --git a/speedtest-cli b/speedtest-cli index ff4ff15..11511b8 100755 --- a/speedtest-cli +++ b/speedtest-cli @@ -83,6 +83,13 @@ class FileGetter(threading.Thread): self.result = 0 +def show_progress( count, total ): + status = " %d out of %d files" % ( count, total ) + sys.stdout.write( status ) + if ( count < total ): + sys.stdout.write( '\b' * len( status ) ) + sys.stdout.flush( ) + def downloadSpeed(files, quiet=False): start = time.time() @@ -91,17 +98,16 @@ def downloadSpeed(files, quiet=False): thread = FileGetter(file, start) thread.start() q.put(thread, True) - if not quiet: - sys.stdout.write('.') - sys.stdout.flush() finished = [] def consumer(q, total_files): + show_progress( len( finished ), total_files ) while len(finished) < total_files: thread = q.get(True) thread.join() finished.append(thread.result) + show_progress( len( finished ), total_files ) thread.result = 0 q = Queue(6) @@ -149,17 +155,16 @@ def uploadSpeed(url, sizes, quiet=False): thread = FilePutter(url, start, size) thread.start() q.put(thread, True) - if not quiet: - sys.stdout.write('.') - sys.stdout.flush() finished = [] def consumer(q, total_sizes): + show_progress( len( finished ), total_sizes ) while len(finished) < total_sizes: thread = q.get(True) thread.join() finished.append(thread.result) + show_progress( len( finished ), total_sizes ) thread.result = 0 q = Queue(6)