diff --git a/pisi/cli/__init__.py b/pisi/cli/__init__.py index c185bd1e..ee4b1336 100644 --- a/pisi/cli/__init__.py +++ b/pisi/cli/__init__.py @@ -113,10 +113,12 @@ class CLI(UI): return False - def display_progress(self, pd): + def display_progress(self, **ka): out = '\r%-30.30s %3d%% %12.2f %s' % \ - (pd['filename'], pd['percent'], pd['rate'], pd['symbol']) + (ka['filename'], ka['percent'], ka['rate'], ka['symbol']) self.output(out) + if ka['percent'] == 100: + self.output(colorize(' [complete]\n', 'gray')) def status(self, msg = None): if msg: diff --git a/pisi/fetcher.py b/pisi/fetcher.py index 7908bc87..062a6641 100644 --- a/pisi/fetcher.py +++ b/pisi/fetcher.py @@ -98,6 +98,7 @@ class Fetcher: if self.progress: p = self.progress(totalsize, existsize) self.percent = p.update(size) + self.complete = False while chunk: dest.write(chunk) chunk = fileURI.read(bs) @@ -113,11 +114,13 @@ class Fetcher: if self.progress: if p.update(size): self.percent = p.percent - retval = {'filename': self.url.filename(), - 'percent' : self.percent, - 'rate': self.rate, - 'symbol': symbol} - ctx.ui.display_progress(retval) + if not self.complete: + ctx.ui.display_progress(filename = self.url.filename(), + percent = self.percent, + rate = self.rate, + symbol = symbol) + if self.percent == 100: #FIXME: will be superseded by a + self.complete = True # working progress interface dest.close()