X-Git-Url: https://code.grnet.gr/git/snf-image-creator/blobdiff_plain/b13959674094c57ea0b5dce1164da4819bbcfe3c..5b801534a4277ae5730a12736cd5ff5242aa62d9:/image_creator/util.py diff --git a/image_creator/util.py b/image_creator/util.py index 3cacba0..d3d4cc0 100644 --- a/image_creator/util.py +++ b/image_creator/util.py @@ -34,7 +34,7 @@ import sys import pbs import hashlib -from clint.textui import colored +from colors import red, green, yellow from progress.bar import Bar @@ -61,19 +61,19 @@ def get_command(command): def error(msg, new_line=True): nl = "\n" if new_line else '' - sys.stderr.write(colored.red('Error: %s' % msg) + nl) + sys.stderr.write(red('Error: %s' % msg) + nl) def warn(msg, new_line=True): if not silent: nl = "\n" if new_line else '' - sys.stderr.write(colored.yellow("Warning: %s" % msg) + nl) + sys.stderr.write(yellow("Warning: %s" % msg) + nl) def success(msg, new_line=True): if not silent: nl = "\n" if new_line else '' - sys.stdout.write(colored.green(msg) + nl) + sys.stdout.write(green(msg) + nl) if not nl: sys.stdout.flush() @@ -89,22 +89,31 @@ def output(msg="", new_line=True): def progress(message='', bar_type="default"): MESSAGE_LENGTH = 30 - - suffix={'default':'%(index)d/%(max)d', - 'percent':'%(percent)d%%', - 'b':'%(index)d/%(max)d B', - 'kb':'%(index)d/%(max)d KB', - 'mb':'%(index)d/%(max)d MB'} - return Bar(message=message.ljust(MESSAGE_LENGTH), fill='#', \ - suffix=suffix[bar_type]) + suffix = { + 'default': '%(index)d/%(max)d', + 'percent': '%(percent)d%%', + 'b': '%(index)d/%(max)d B', + 'kb': '%(index)d/%(max)d KB', + 'mb': '%(index)d/%(max)d MB' + } + + bar = Bar() + bar.message = message.ljust(MESSAGE_LENGTH) + bar.fill = '#' + bar.suffix = suffix[bar_type] + bar.bar_prefix = ' [' + bar.bar_suffix = '] ' + + return bar + def md5(filename, size): BLOCKSIZE = 2 ** 22 # 4MB progressbar = progress("Calculating md5sum:", 'mb') - progressbar.max = (size // (2 ** 20)) + progressbar.max = ((size + 2 ** 20 - 1) // (2 ** 20)) md5 = hashlib.md5() with open(filename, "r") as src: left = size @@ -114,7 +123,7 @@ def md5(filename, size): md5.update(data) left -= length progressbar.goto((size - left) // (2 ** 20)) - + checksum = md5.hexdigest() output("\rCalculating md5sum...\033[K", False) success(checksum)