diff --git a/master.py b/master.py index 9c99206..353e663 100644 --- a/master.py +++ b/master.py @@ -144,10 +144,12 @@ def already_running() -> bool: return True -def package_exists(name, repo) -> bool: - pkgs = find_all_files_for_pkg(name, repo) - - return len(pkgs) > 0 +def package_exists(names: list, repo) -> bool: + for name in names: + pkgs = find_all_files_for_pkg(name, repo) + if not pkgs: + return False + return True def find_all_files_for_pkg(name: str, repo: str) -> list: @@ -288,28 +290,27 @@ def fill_queue() -> None: # ignore pkgbuild if in trunk, -any package, not in repos, on blacklist, not for current arch if path_split[-2] == "trunk" or path_split[-2].split("-")[0] not in config["repos"] or "any" in parsed["arch"] \ or parsed["pkgbase"] in config["blacklist"] or "i686" in path_split[-2]: - # TODO: delete pkgs not build anymore + # TODO: delete packages not to build pass else: for march in config["march"]: repo = path_split[-2].split("-")[0] + "-" + march - for pkgname in list(parsed["packages"]): - if pkgname in get_failed_packages(repo): - logging.info("[%s/%s] Skipped due to failing build", repo, pkgname) - continue + if parsed["pkgbase"] in get_failed_packages(repo): + logging.info("[%s/%s] Skipped due to failing build", repo, parsed["pkgbase"]) + continue + 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 package_exists(pkgname, repo): - logging.debug("[SEMVER] Comparing %s=%s - %s=%s", pkgname, parse_repo(pkgname, repo), pkgname, - parse_pkgbuild_ver(pkgbuild)) - - if not package_exists(pkgname, repo): - q.put((pkgbuild, repo)) - logging.info("[%s/%s] Build queued (package not build yet)", repo, pkgname) - elif parse_repo(pkgname, repo) < parse_pkgbuild_ver(pkgbuild): - q.put((pkgbuild, repo)) - logging.info("[%s/%s] Build queued (new version available %s < %s)", repo, pkgname, - parse_repo(pkgname, repo), parse_pkgbuild(pkgbuild)) + if not package_exists(packages, repo): + 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(pkgbuild)) logging.info("Build queue size: %s", q.qsize())