diff --git a/master.py b/master.py index 4dbce09..5d6abea 100644 --- a/master.py +++ b/master.py @@ -156,13 +156,9 @@ def find_all_files_for_pkg(name: str, repo: str) -> list: for file in files: res = regex_pkg_repo.findall(file) for r in res: - if r == name: + if r == name and not file.endswith(".sig"): pkgs.append(os.path.join(root, file)) - for p in pkgs: - if p.endswith(".sig"): - pkgs.remove(p) - return pkgs @@ -296,18 +292,20 @@ def fill_queue() -> None: if parsed["pkgbase"] in get_failed_packages(repo): logging.info("[%s/%s] Skipped due to failing build", repo, parsed["pkgbase"]) continue + + ver = parse_pkgbuild_ver(parsed=parsed) packages = list(parsed["packages"]) if package_exists(packages, repo): logging.debug("[SEMVER] Comparing %s=%s - %s=%s", packages[0], parse_repo(packages[0], repo), - packages[0], parse_pkgbuild_ver(pkgbuild)) - - if not package_exists(packages, repo): + packages[0], ver) + rv = parse_repo(packages[0], repo) + if rv < ver: + q.put((pkgbuild, repo)) + logging.info("[%s/%s] Build queued (new version available %s < %s)", repo, parsed["pkgbase"], + rv, ver) + else: q.put((pkgbuild, repo)) logging.info("[%s/%s] Build queued (package not build yet)", repo, parsed["pkgbase"]) - elif parse_repo(packages[0], repo) < parse_pkgbuild_ver(pkgbuild): - q.put((pkgbuild, repo)) - logging.info("[%s/%s] Build queued (new version available %s < %s)", repo, parsed["pkgbase"], - parse_repo(packages[0], repo), parse_pkgbuild_ver(pkgbuild)) logging.info("Build queue size: %s", q.qsize()) diff --git a/utils.py b/utils.py index a43f810..be00519 100644 --- a/utils.py +++ b/utils.py @@ -2,7 +2,6 @@ import logging import os import pathlib import subprocess -import sys from packaging.version import LegacyVersion from srcinfo.parse import parse_srcinfo @@ -42,8 +41,9 @@ def parse_pkgbuild(pkgbuild_file: str) -> dict: return parsed -def parse_pkgbuild_ver(pkgbuild_file: str) -> LegacyVersion: - parsed = parse_pkgbuild(pkgbuild_file) +def parse_pkgbuild_ver(pkgbuild_file: str = None, parsed: dict = None) -> LegacyVersion: + if not parsed: + parsed = parse_pkgbuild(pkgbuild_file) if "epoch" in parsed: return LegacyVersion("{}:{}-{}".format(parsed["epoch"], parsed["pkgver"], parsed["pkgrel"])) return LegacyVersion("{}-{}".format(parsed["pkgver"], parsed["pkgrel"]))