euscanwww: Store ebuild and metadata path in Version
Uses getRepositoryPath, change if possible Signed-off-by: volpino <fox91@anche.no>
This commit is contained in:
parent
b7d772dfc3
commit
c4577c5279
@ -1,5 +1,8 @@
|
|||||||
import subprocess
|
import subprocess
|
||||||
import portage
|
from os.path import join
|
||||||
|
|
||||||
|
from portage import catpkgsplit, catsplit
|
||||||
|
from portage.dbapi import porttree
|
||||||
|
|
||||||
from xml.etree.ElementTree import iterparse, ParseError
|
from xml.etree.ElementTree import iterparse, ParseError
|
||||||
|
|
||||||
@ -21,6 +24,8 @@ class ScanPortage(object):
|
|||||||
self.purge_versions = purge_versions
|
self.purge_versions = purge_versions
|
||||||
|
|
||||||
self.style = color_style()
|
self.style = color_style()
|
||||||
|
self.portdbapi = porttree.portdbapi()
|
||||||
|
|
||||||
self._cache = {'packages': {}, 'versions': {}}
|
self._cache = {'packages': {}, 'versions': {}}
|
||||||
self._overlays = None
|
self._overlays = None
|
||||||
|
|
||||||
@ -168,7 +173,7 @@ class ScanPortage(object):
|
|||||||
if not query:
|
if not query:
|
||||||
current_packages = Package.objects.all()
|
current_packages = Package.objects.all()
|
||||||
elif '/' in query:
|
elif '/' in query:
|
||||||
cat, pkg = portage.catsplit(query)
|
cat, pkg = catsplit(query)
|
||||||
current_packages = Package.objects.filter(category=cat, name=pkg)
|
current_packages = Package.objects.filter(category=cat, name=pkg)
|
||||||
else:
|
else:
|
||||||
current_packages = Package.objects.filter(name=query)
|
current_packages = Package.objects.filter(name=query)
|
||||||
@ -210,7 +215,7 @@ class ScanPortage(object):
|
|||||||
return obj
|
return obj
|
||||||
|
|
||||||
def store_version(self, package, cpv, slot, overlay):
|
def store_version(self, package, cpv, slot, overlay):
|
||||||
cat, pkg, ver, rev = portage.catpkgsplit(cpv)
|
cat, pkg, ver, rev = catpkgsplit(cpv)
|
||||||
if not overlay:
|
if not overlay:
|
||||||
overlay = 'gentoo'
|
overlay = 'gentoo'
|
||||||
|
|
||||||
@ -218,6 +223,12 @@ class ScanPortage(object):
|
|||||||
obj = self.cache_get_version(
|
obj = self.cache_get_version(
|
||||||
package.category, package.name, ver, rev, slot, overlay
|
package.category, package.name, ver, rev, slot, overlay
|
||||||
)
|
)
|
||||||
|
|
||||||
|
overlay_path = self.portdbapi.getRepositoryPath(overlay)
|
||||||
|
package_path = join(overlay_path, package.category, package.name)
|
||||||
|
ebuild_path = join(package_path, "%s.ebuild" % cpv.split("/")[-1])
|
||||||
|
metadata_path = join(package_path, "metadata.xml")
|
||||||
|
|
||||||
if not obj:
|
if not obj:
|
||||||
obj, created = Version.objects.get_or_create(
|
obj, created = Version.objects.get_or_create(
|
||||||
package=package, slot=slot,
|
package=package, slot=slot,
|
||||||
@ -228,7 +239,9 @@ class ScanPortage(object):
|
|||||||
"packaged": True,
|
"packaged": True,
|
||||||
"version_type": get_version_type(ver),
|
"version_type": get_version_type(ver),
|
||||||
"confidence": 100,
|
"confidence": 100,
|
||||||
"handler": "portage"
|
"handler": "portage",
|
||||||
|
"ebuild_path": ebuild_path,
|
||||||
|
"metadata_path": metadata_path,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
if not created: # Created objects have defaults values
|
if not created: # Created objects have defaults values
|
||||||
|
Loading…
Reference in New Issue
Block a user