add IProgress.error() to allow application to handle errors

This commit is contained in:
Romain Bignon 2012-02-02 17:17:57 +01:00
commit 59b4e78f65

View file

@ -355,6 +355,9 @@ class IProgress:
def progress(self, percent, message): def progress(self, percent, message):
print '=== [%3.0f%%] %s' % (percent*100, message) print '=== [%3.0f%%] %s' % (percent*100, message)
def error(self, message):
print >>sys.stderr, 'ERROR: %s' % message
class ModuleInstallError(Exception): class ModuleInstallError(Exception):
pass pass
@ -513,7 +516,7 @@ class Repositories(object):
line = line.strip() % {'version': self.version} line = line.strip() % {'version': self.version}
m = re.match('(file|https?)://.*', line) m = re.match('(file|https?)://.*', line)
if m: if m:
print 'Getting %s' % line progress.progress(0.0, 'Getting %s' % line)
repository = Repository(line) repository = Repository(line)
filename = self.url2filename(repository.url) filename = self.url2filename(repository.url)
prio_filename = '%02d-%s' % (len(self.repositories), filename) prio_filename = '%02d-%s' % (len(self.repositories), filename)
@ -524,10 +527,10 @@ class Repositories(object):
if gpgv: if gpgv:
repository.retrieve_keyring(keyring_path) repository.retrieve_keyring(keyring_path)
else: else:
print >>sys.stderr, 'Cannot find gpgv to check for repository authenticity.' progress.error('Cannot find gpgv to check for repository authenticity.\n'
print >>sys.stderr, 'You should install GPG for better security.' 'You should install GPG for better security.')
except RepositoryUnavailable, e: except RepositoryUnavailable, e:
print >>sys.stderr, 'Error: %s' % e progress.error('Unable to load repository: %s' % e)
else: else:
self.repositories.append(repository) self.repositories.append(repository)