Fix iteration.

This commit is contained in:
Jelmer Vernooij 2021-04-13 19:47:54 +01:00 committed by Jelmer Vernooij
parent 58917e6cd2
commit 8c297cef6f
No known key found for this signature in database
GPG key ID: 579C160D4C9E23E8
2 changed files with 8 additions and 9 deletions

View file

@ -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)

View file

@ -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)