sorry Olf, I've in fact broken weboob-repos

This commit is contained in:
Romain Bignon 2014-05-17 15:06:06 +02:00
commit 62b8ca70c6

View file

@ -120,8 +120,7 @@ class Repository(object):
KEYDIR = '.keys' KEYDIR = '.keys'
KEYRING = 'trusted.gpg' KEYRING = 'trusted.gpg'
def __init__(self, browser, url): def __init__(self, url):
self.browser = browser
self.url = url self.url = url
self.name = u'' self.name = u''
self.update = 0 self.update = 0
@ -155,7 +154,7 @@ class Repository(object):
return self.url[len('file://'):] return self.url[len('file://'):]
return self.url return self.url
def retrieve_index(self, repo_path): def retrieve_index(self, browser, repo_path):
""" """
Retrieve the index file of this repository. It can use network Retrieve the index file of this repository. It can use network
if this is a remote repository. if this is a remote repository.
@ -176,7 +175,7 @@ class Repository(object):
else: else:
# This is a remote repository, download file # This is a remote repository, download file
try: try:
fp = BytesIO(self.browser.open(posixpath.join(self.url, self.INDEX)).content) fp = BytesIO(browser.open(posixpath.join(self.url, self.INDEX)).content)
except BrowserUnavailable as e: except BrowserUnavailable as e:
raise RepositoryUnavailable(unicode(e)) raise RepositoryUnavailable(unicode(e))
@ -189,7 +188,7 @@ class Repository(object):
# Save the repository index in ~/.weboob/repositories/ # Save the repository index in ~/.weboob/repositories/
self.save(repo_path, private=True) self.save(repo_path, private=True)
def retrieve_keyring(self, keyring_path): def retrieve_keyring(self, browser, keyring_path):
# ignore local # ignore local
if self.local: if self.local:
return return
@ -204,8 +203,8 @@ class Repository(object):
if not keyring.exists() or self.key_update > keyring.version: if not keyring.exists() or self.key_update > keyring.version:
# This is a remote repository, download file # This is a remote repository, download file
try: try:
keyring_data = self.browser.open(posixpath.join(self.url, self.KEYRING)).content keyring_data = browser.open(posixpath.join(self.url, self.KEYRING)).content
sig_data = self.browser.open(posixpath.join(self.url, self.KEYRING + '.sig')).content sig_data = browser.open(posixpath.join(self.url, self.KEYRING + '.sig')).content
except BrowserUnavailable as e: except BrowserUnavailable as e:
raise RepositoryUnavailable(unicode(e)) raise RepositoryUnavailable(unicode(e))
if keyring.exists(): if keyring.exists():
@ -501,7 +500,7 @@ class Repositories(object):
for name in sorted(os.listdir(self.repos_dir)): for name in sorted(os.listdir(self.repos_dir)):
path = os.path.join(self.repos_dir, name) path = os.path.join(self.repos_dir, name)
try: try:
repository = Repository(self.browser, path) repository = Repository(path)
self.repositories.append(repository) self.repositories.append(repository)
except RepositoryUnavailable as e: except RepositoryUnavailable as e:
print('Unable to load repository %s (%s), try to update repositories.' % (name, e), file=sys.stderr) print('Unable to load repository %s (%s), try to update repositories.' % (name, e), file=sys.stderr)
@ -561,15 +560,15 @@ class Repositories(object):
gpgv = Keyring.find_gpgv() gpgv = Keyring.find_gpgv()
for line in self._parse_source_list(): for line in self._parse_source_list():
progress.progress(0.0, 'Getting %s' % line) progress.progress(0.0, 'Getting %s' % line)
repository = Repository(self.browser, 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)
repo_path = os.path.join(self.repos_dir, prio_filename) repo_path = os.path.join(self.repos_dir, prio_filename)
keyring_path = os.path.join(self.keyrings_dir, filename) keyring_path = os.path.join(self.keyrings_dir, filename)
try: try:
repository.retrieve_index(repo_path) repository.retrieve_index(self.browser, repo_path)
if gpgv: if gpgv:
repository.retrieve_keyring(keyring_path) repository.retrieve_keyring(self.browser, keyring_path)
else: else:
progress.error('Cannot find gpgv to check for repository authenticity.\n' progress.error('Cannot find gpgv to check for repository authenticity.\n'
'You should install GPG for better security.') 'You should install GPG for better security.')
@ -584,7 +583,7 @@ class Repositories(object):
""" """
l = [] l = []
for line in self._parse_source_list(): for line in self._parse_source_list():
repository = Repository(self.browser, line) repository = Repository(line)
filename = self.url2filename(repository.url) filename = self.url2filename(repository.url)
prio_filename = '%02d-%s' % (len(l), filename) prio_filename = '%02d-%s' % (len(l), filename)
repo_path = os.path.join(self.repos_dir, prio_filename) repo_path = os.path.join(self.repos_dir, prio_filename)