Browse Source

Fix crash on not supported function on remote

main 0.1.1
Ophelia Beatrice de Sica 10 months ago
parent
commit
d85ccdd776
No known key found for this signature in database GPG Key ID: 26B14D36EB0D3C8E
2 changed files with 33 additions and 4 deletions
  1. +15
    -2
      src/pkgupdates/package.py
  2. +18
    -2
      src/pkgupdates/remote.py

+ 15
- 2
src/pkgupdates/package.py View File

@ -12,7 +12,9 @@ from .remote import ERemote, Remote
rex_pkg_version = re.compile("-([0-9.]+)([_a-z0-9]+)*(-r[0-9]+)?[.]ebuild") rex_pkg_version = re.compile("-([0-9.]+)([_a-z0-9]+)*(-r[0-9]+)?[.]ebuild")
PkgVersion = collections.namedtuple("PkgVersion", ["name", "category", "version"])
PkgVersion = collections.namedtuple("PkgVersion",
["name", "category", "version"]
)
def get_packages(): def get_packages():
@ -85,7 +87,7 @@ def get_package_versions(meta):
return versions, eversion return versions, eversion
def check_package(pkg, meta):
def check_package(pkg, meta): # pylint: disable=R0911
"""Check package for updates""" """Check package for updates"""
remote = Remote remote = Remote
pkg_type = "UNKNOWN" pkg_type = "UNKNOWN"
@ -100,7 +102,13 @@ def check_package(pkg, meta):
print(pkg + ": Unsupported backend: " + pkg_type) print(pkg + ": Unsupported backend: " + pkg_type)
return return
if not remote.support_latest_commit():
return
version = remote.get_latest_commit(meta["remote-id"]) version = remote.get_latest_commit(meta["remote-id"])
if version is None or version == '':
return
version = datetime.datetime.fromisoformat(version) version = datetime.datetime.fromisoformat(version)
version = version.strftime("%Y%m%d") version = version.strftime("%Y%m%d")
latest_version = parse_version(version) latest_version = parse_version(version)
@ -110,16 +118,21 @@ def check_package(pkg, meta):
print(pkg + ": Unsupported backend: " + pkg_type) print(pkg + ": Unsupported backend: " + pkg_type)
return return
if not remote.support_latest_release():
return
tag = remote.get_latest_release(meta["remote-id"]) tag = remote.get_latest_release(meta["remote-id"])
if tag is None or tag == "": if tag is None or tag == "":
print(pkg + ": HTTPError! " + meta["remote-id"]) print(pkg + ": HTTPError! " + meta["remote-id"])
return return
latest_version = parse_version(tag) latest_version = parse_version(tag)
case EVersion.VCS: case EVersion.VCS:
print(pkg + ": VCS package") print(pkg + ": VCS package")
return return
case EVersion.UNKNOWN: case EVersion.UNKNOWN:
print(pkg + ": Manual Compare") print(pkg + ": Manual Compare")
return return


+ 18
- 2
src/pkgupdates/remote.py View File

@ -110,16 +110,32 @@ class Remote:
TYPE = ERemote.UNKNOWN TYPE = ERemote.UNKNOWN
NAME = "unkown remote type" NAME = "unkown remote type"
@classmethod
def support_latest_release(cls):
"""Check if remote has latest release implemented"""
if cls.get_latest_release == Remote.get_latest_release:
print(f"Error: {cls.NAME} semantic version check not implemented!")
return False
return True
@classmethod
def support_latest_commit(cls):
"""Check if remote has latest commit implemented"""
if cls.get_latest_commit == Remote.get_latest_commit:
print(f"Error: {cls.NAME} date version check not implemented!")
return False
return True
@classmethod @classmethod
def get_latest_release(cls, pkg_repo): # pylint: disable=unused-argument def get_latest_release(cls, pkg_repo): # pylint: disable=unused-argument
"""Get latest release - mostly for Semantic versioning""" """Get latest release - mostly for Semantic versioning"""
print(f"Error: {cls.NAME} not support semantic version check!")
print(f"Error: {cls.NAME} semantic version check not implemented!")
return "" return ""
@classmethod @classmethod
def get_latest_commit(cls, pkg_repo): # pylint: disable=unused-argument def get_latest_commit(cls, pkg_repo): # pylint: disable=unused-argument
"""Get latest commit - mostly for date versioning""" """Get latest commit - mostly for date versioning"""
print(f"Error: {cls.NAME} not support date version check")
print(f"Error: {cls.NAME} date version check not implemented!")
return "" return ""


Loading…
Cancel
Save