optimize fill_queue
This commit is contained in:
22
master.py
22
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())
|
||||
|
||||
|
6
utils.py
6
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"]))
|
||||
|
Reference in New Issue
Block a user