diff --git a/master.py b/master.py index 69f8500..a9378a7 100644 --- a/master.py +++ b/master.py @@ -41,6 +41,11 @@ def find_all_files_for_pkg(name, repo): return pkgs +def get_failed_packages(repo): + with open(os.path.join(config["basedir"]["repo"], repo + "_failed.txt")) as p: + return p.readlines() + + def build(pkgbuild, repo): start_time = time.time() name = pathlib.Path(pkgbuild).parts[-4] @@ -219,15 +224,19 @@ def fill_queue(): for pkgb in final_pkgbuilds: for march in config["march"]: path_split = pkgb.split("/") - name = path_split[1] - repo = path_split[3].split("-")[0] + "-" + march + name = path_split[-4] + repo = path_split[-2].split("-")[0] + "-" + march + + if name in get_failed_packages(repo): + logging.info("[%s/%s] Skipped due to failing build", repo, name) + continue if not package_exists(name, repo): q.put((pkgb, repo)) - logging.debug("[%s/%s] Build queued (package not build yet)", repo, pkgb.split("/")[-4]) + logging.debug("[%s/%s] Build queued (package not build yet)", repo, name) elif parse_repo(name, repo) < parse_pkgbuild(pkgb): q.put((pkgb, repo)) - logging.debug("[%s/%s] Build queued (new version available %s < %s)", repo, pkgb.split("/")[-4], + logging.debug("[%s/%s] Build queued (new version available %s < %s)", repo, name, parse_repo(name, repo), parse_pkgbuild(pkgb)) logging.info("Queue size after fill: %s", q.qsize())