Commit ba67a473 authored by Jack Jansen's avatar Jack Jansen

Allow relative URLs for included databases and packages.

parent 902c5f1f
...@@ -402,18 +402,21 @@ class PimpDatabase: ...@@ -402,18 +402,21 @@ class PimpDatabase:
self._maintainer = plistdata.get('Maintainer', '') self._maintainer = plistdata.get('Maintainer', '')
self._description = plistdata.get('Description', '').strip() self._description = plistdata.get('Description', '').strip()
self._url = url self._url = url
self._appendPackages(plistdata['Packages']) self._appendPackages(plistdata['Packages'], url)
others = plistdata.get('Include', []) others = plistdata.get('Include', [])
for url in others: for o in others:
self.appendURL(url, included=1) o = urllib.basejoin(url, o)
self.appendURL(o, included=1)
def _appendPackages(self, packages): def _appendPackages(self, packages, url):
"""Given a list of dictionaries containing package """Given a list of dictionaries containing package
descriptions create the PimpPackage objects and append them descriptions create the PimpPackage objects and append them
to our internal storage.""" to our internal storage."""
for p in packages: for p in packages:
p = dict(p) p = dict(p)
if p.has_key('Download-URL'):
p['Download-URL'] = urllib.basejoin(url, p['Download-URL'])
flavor = p.get('Flavor') flavor = p.get('Flavor')
if flavor == 'source': if flavor == 'source':
pkg = PimpPackage_source(self, p) pkg = PimpPackage_source(self, p)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment