def result(self, cp, version, urls, handler, confidence): from euscan.version import get_version_type cpv = '%s-%s' % (cp, version) urls = ' '.join( transform_url(self.config, cpv, url) for url in urls.split() ) if self.config['format'] in ['json', 'dict']: _curr = self.queries[self.current_query] _curr["result"].append( { "version": version, "urls": urls.split(), "handler": handler, "confidence": confidence, "type": get_version_type(version) } ) else: if not self.config['quiet']: print "Upstream Version:", pp.number("%s" % version), print pp.path(" %s" % urls) else: print pp.cpv("%s-%s" % (cp, version)) + ":", pp.path(urls)
def result(self, cp, version, urls, handler, confidence): from euscan.version import get_version_type cpv = '%s-%s' % (cp, version) urls = ' '.join( transform_url(self.config, cpv, url) for url in urls.split() ) if self.config['format'] in ['json', 'dict']: _curr = self.queries[self.current_query] _curr["result"].append( { "version": version, "urls": urls.split(), "handler": handler, "confidence": confidence, "type": get_version_type(version) } ) else: if not self.config['quiet']: print("Upstream Version:", pp.number("%s" % version), end=' ') print(pp.path(" %s" % urls)) else: print(pp.cpv("%s-%s" % (cp, version)) + ":", pp.path(urls))
def store_version(self, package, cpv, slot, overlay, overlay_path): cat, pkg, ver, rev = portage.catpkgsplit(cpv) if not overlay: overlay = 'gentoo' created = False obj = self.cache_get_version(package.category, package.name, ver, rev, overlay) overlay_path = overlay_path or portage.settings["PORTDIR"] package_path = os.path.join(overlay_path, package.category, package.name) ebuild_path = os.path.join(package_path, "%s.ebuild" % cpv.split("/")[-1]) metadata_path = os.path.join(package_path, "metadata.xml") if not os.path.exists(metadata_path): metadata_path = None if not obj: obj, created = Version.objects.get_or_create( package=package, revision=rev, version=ver, overlay=overlay, defaults={ "slot": slot, "packaged": True, "vtype": get_version_type(ver), "confidence": 100, "handler": "portage", "ebuild_path": ebuild_path, "metadata_path": metadata_path, }) if not created: # Created objects have defaults values if obj.slot != slot or obj.package != True: obj.slot = slot obj.packaged = True obj.save() if created: self.cache_store_version(obj) # nothing to do (note: it can't be an upstream version because # overlay can't be empty here) if not created: return obj, created # New version created self.logger.info('+ [v] %s' % (obj)) if overlay == 'gentoo': package.n_packaged += 1 else: package.n_overlay += 1 package.n_versions += 1 package.save() if not self.no_log: VersionLog.objects.create( package=obj.package, action=VersionLog.VERSION_ADDED, slot=obj.slot, revision=obj.revision, version=obj.version, overlay=obj.overlay, vtype=obj.vtype, ) return obj, created
def store_version(self, package, cpv, slot, overlay, overlay_path): cat, pkg, ver, rev = portage.catpkgsplit(cpv) if not overlay: overlay = 'gentoo' created = False obj = self.cache_get_version( package.category, package.name, ver, rev, overlay ) overlay_path = overlay_path or portage.settings["PORTDIR"] package_path = os.path.join(overlay_path, package.category, package.name) ebuild_path = os.path.join(package_path, "%s.ebuild" % cpv.split("/")[-1]) metadata_path = os.path.join(package_path, "metadata.xml") if not os.path.exists(metadata_path): metadata_path = None if not obj: obj, created = Version.objects.get_or_create( package=package, revision=rev, version=ver, overlay=overlay, defaults={ "slot": slot, "packaged": True, "vtype": get_version_type(ver), "confidence": 100, "handler": "portage", "ebuild_path": ebuild_path, "metadata_path": metadata_path, } ) if not created: # Created objects have defaults values if obj.slot != slot or obj.package != True: obj.slot = slot obj.packaged = True obj.save() if created: self.cache_store_version(obj) # nothing to do (note: it can't be an upstream version because # overlay can't be empty here) if not created: return obj, created # New version created self.logger.info('+ [v] %s' % (obj)) if overlay == 'gentoo': package.n_packaged += 1 else: package.n_overlay += 1 package.n_versions += 1 package.save() if not self.no_log: VersionLog.objects.create( package=obj.package, action=VersionLog.VERSION_ADDED, slot=obj.slot, revision=obj.revision, version=obj.version, overlay=obj.overlay, vtype=obj.vtype, ) return obj, created
def version_type(version): return get_version_type(version)