euscan: added --ignore-pre-release and --ignore-pre-release-if-stable
options Signed-off-by: volpino <fox91@anche.no>
This commit is contained in:
@ -22,6 +22,8 @@ CONFIG = {
|
||||
'indent': 2,
|
||||
'progress': False,
|
||||
'mirror': False,
|
||||
'ignore-pre-release': False,
|
||||
'ignore-pre-release-if-stable': False,
|
||||
}
|
||||
|
||||
BLACKLIST_VERSIONS = [
|
||||
|
@ -34,6 +34,10 @@ _v_end = '((-|_)(pre|p|beta|b|alpha|a|rc|r)\d*)'
|
||||
_v = r'((\d+)((\.\d+)*)([a-zA-Z]*?)(' + _v_end + '*))'
|
||||
|
||||
|
||||
def is_version_stable(version):
|
||||
return get_version_type(version) not in ("alpha", "beta", "pre", "rc")
|
||||
|
||||
|
||||
def get_version_type(version):
|
||||
types = []
|
||||
gentoo_types = ("alpha", "beta", "pre", "rc", "p")
|
||||
|
@ -12,7 +12,8 @@ from gentoolkit.query import Query
|
||||
from gentoolkit.package import Package
|
||||
|
||||
from euscan import CONFIG, BLACKLIST_PACKAGES
|
||||
from euscan import handlers, helpers, output
|
||||
from euscan import handlers, output
|
||||
from euscan.helpers import version_blacklisted, is_version_stable
|
||||
from euscan.ebuild import package_from_ebuild
|
||||
|
||||
|
||||
@ -26,7 +27,7 @@ def filter_versions(cp, versions):
|
||||
continue
|
||||
|
||||
# Remove blacklisted versions
|
||||
if helpers.version_blacklisted(cp, version):
|
||||
if version_blacklisted(cp, version):
|
||||
continue
|
||||
|
||||
filtered[version] = {
|
||||
@ -186,6 +187,10 @@ def scan_upstream(query, on_progress=None):
|
||||
output.metadata("description", pkg.environment("DESCRIPTION"))
|
||||
|
||||
cpv = pkg.cpv
|
||||
|
||||
_, _, ver, _ = portage.catpkgsplit(cpv)
|
||||
is_current_version_stable = is_version_stable(ver)
|
||||
|
||||
metadata = {
|
||||
"EAPI": portage.settings["EAPI"],
|
||||
"SRC_URI": pkg.environment("SRC_URI", False),
|
||||
@ -220,6 +225,13 @@ def scan_upstream(query, on_progress=None):
|
||||
print("\n", file=sys.stderr)
|
||||
|
||||
for cp, url, version, handler, confidence in result:
|
||||
if CONFIG["ignore-pre-release"]:
|
||||
if not is_version_stable(version):
|
||||
continue
|
||||
if CONFIG["ignore-pre-release-if-stable"]:
|
||||
if is_current_version_stable and \
|
||||
not is_version_stable(version):
|
||||
continue
|
||||
output.result(cp, version, url, handler, confidence)
|
||||
|
||||
return result
|
||||
|
Reference in New Issue
Block a user