Browse Source

Fix crash on not supported function on remote

main 0.1.1
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")
PkgVersion = collections.namedtuple("PkgVersion", ["name", "category", "version"])
PkgVersion = collections.namedtuple("PkgVersion",
["name", "category", "version"]
)
def get_packages():
@ -85,7 +87,7 @@ def get_package_versions(meta):
return versions, eversion
def check_package(pkg, meta):
def check_package(pkg, meta): # pylint: disable=R0911
"""Check package for updates"""
remote = Remote
pkg_type = "UNKNOWN"
@ -100,7 +102,13 @@ def check_package(pkg, meta):
print(pkg + ": Unsupported backend: " + pkg_type)
return
if not remote.support_latest_commit():
return
version = remote.get_latest_commit(meta["remote-id"])
if version is None or version == '':
return
version = datetime.datetime.fromisoformat(version)
version = version.strftime("%Y%m%d")
latest_version = parse_version(version)
@ -110,16 +118,21 @@ def check_package(pkg, meta):
print(pkg + ": Unsupported backend: " + pkg_type)
return
if not remote.support_latest_release():
return
tag = remote.get_latest_release(meta["remote-id"])
if tag is None or tag == "":
print(pkg + ": HTTPError! " + meta["remote-id"])
return
latest_version = parse_version(tag)
case EVersion.VCS:
print(pkg + ": VCS package")
return
case EVersion.UNKNOWN:
print(pkg + ": Manual Compare")
return


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

@ -110,16 +110,32 @@ class Remote:
TYPE = ERemote.UNKNOWN
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
def get_latest_release(cls, pkg_repo): # pylint: disable=unused-argument
"""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 ""
@classmethod
def get_latest_commit(cls, pkg_repo): # pylint: disable=unused-argument
"""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 ""


Loading…
Cancel
Save