From 8c297cef6fd48c3e96297ea86e0a53b3a435fbd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jelmer=20Vernoo=C4=B3?= Date: Tue, 13 Apr 2021 19:47:54 +0100 Subject: [PATCH] Fix iteration. --- ognibuild/buildsystem.py | 10 +++------- ognibuild/fix_build.py | 7 +++++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/ognibuild/buildsystem.py b/ognibuild/buildsystem.py index 62ccfd9..adb0da9 100644 --- a/ognibuild/buildsystem.py +++ b/ognibuild/buildsystem.py @@ -1468,14 +1468,10 @@ class PerlBuildTiny(BuildSystem): self.setup(session, fixers) with DistCatcher([session.external_path('.')]) as dc: if self.minilla: - lines = run_with_build_fixers(session, ["minil", "dist"], fixers) # minil seems to return 0 even if it didn't produce a tarball :( - if not dc.find_files(): - match, error = find_build_failure_description(lines) - if error: - raise DetailedFailure(0, ["minil", "dist"], error) - else: - raise UnidentifiedError(0, ["minil", "dist"], lines, match) + run_with_build_fixers( + session, ["minil", "dist"], fixers, + check_success=lambda retcode, lines: bool(dc.find_files())) else: try: run_with_build_fixers(session, ["./Build", "dist"], fixers) diff --git a/ognibuild/fix_build.py b/ognibuild/fix_build.py index 90d67a2..4863375 100644 --- a/ognibuild/fix_build.py +++ b/ognibuild/fix_build.py @@ -44,14 +44,17 @@ class BuildFixer(object): return self._fix(problem, phase) -def run_detecting_problems(session: Session, args: List[str], **kwargs): +def run_detecting_problems(session: Session, args: List[str], check_success=None, **kwargs): + if check_success is None: + def check_success(retcode, contents): + return (retcode == 0) try: retcode, contents = run_with_tee(session, args, **kwargs) except FileNotFoundError: error = MissingCommand(args[0]) retcode = 1 else: - if retcode == 0: + if check_success(retcode, contents): return contents lines = "".join(contents).splitlines(False) match, error = find_build_failure_description(lines)