summaryrefslogtreecommitdiff
path: root/apt/progress
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2010-01-17 15:41:44 +0100
committerJulian Andres Klode <jak@debian.org>2010-01-17 15:41:44 +0100
commita1f06a125e59bf06ea8fccea9b584097221c0032 (patch)
tree578f5367e8f5649384482c2cae71f8502b541049 /apt/progress
parentef77bd9cc237bd3ddae8e22fd325b412ad46ab00 (diff)
downloadpython-apt-a1f06a125e59bf06ea8fccea9b584097221c0032.tar.gz
apt/progress/base.py: Fix some parsing of dpkg status fd.
Diffstat (limited to 'apt/progress')
-rw-r--r--apt/progress/base.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/apt/progress/base.py b/apt/progress/base.py
index 4df26f26..64bb22dc 100644
--- a/apt/progress/base.py
+++ b/apt/progress/base.py
@@ -223,13 +223,18 @@ class InstallProgress(object):
return
elif line.startswith('status'):
try:
- (base, pkgname, status, status_str) = line.split(": ", 3)
+ (base, pkgname, status, status_str) = line.split(":", 3)
except ValueError:
- (base, pkgname, status) = line.split(": ", 2)
+ (base, pkgname, status) = line.split(":", 2)
elif line.startswith('processing'):
- (status, status_str, pkgname) = line.split(": ", 2)
+ (status, status_str, pkgname) = line.split(":", 2)
self.processing(pkgname.strip(), status_str.strip())
+ # Always strip the status message
+ pkgname = pkgname.strip()
+ status_str = status_str.strip()
+ status = status.strip()
+
if status == 'pmerror' or status == 'error':
self.error(pkgname, status_str)
elif status == 'conffile-prompt' or status == 'pmconffile':
@@ -237,6 +242,7 @@ class InstallProgress(object):
if match:
self.conffile(match.group(1), match.group(2))
elif status == "pmstatus":
+ # FIXME: Float comparison
if float(percent) != self.percent or status_str != self.status:
self.status_change(pkgname, float(percent), status_str.strip())
self.percent = float(percent)