diff options
Diffstat (limited to 'mdbp/sbuild.py')
-rw-r--r-- | mdbp/sbuild.py | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/mdbp/sbuild.py b/mdbp/sbuild.py index edb3531..5309031 100644 --- a/mdbp/sbuild.py +++ b/mdbp/sbuild.py @@ -4,12 +4,13 @@ import argparse import contextlib +import pathlib import subprocess import sys import tempfile import typing -from .common import buildjson, compute_env, get_dsc +from .common import buildjson, clean_dir, compute_env, get_dsc PerlValue = typing.Union[None, str, typing.List[typing.Any], typing.Dict[str, typing.Any]] @@ -89,16 +90,18 @@ def main() -> None: except KeyError: thing = str(stack.enter_context(get_dsc(build)).absolute()) - proc = subprocess.Popen(["sbuild", thing], - env=dict(SBUILD_CONFIG=sbuildconf.name, - PATH="/usr/bin:/bin"), - cwd=build["output"]["directory"], - stdout=None if build["output"].get("log", True) - else subprocess.DEVNULL, - stderr=subprocess.STDOUT - if build["output"].get("log", True) - else subprocess.DEVNULL) - sys.exit(proc.wait()) + cproc = subprocess.run(["sbuild", thing], + env=dict(SBUILD_CONFIG=sbuildconf.name, + PATH="/usr/bin:/bin"), + cwd=build["output"]["directory"], + stdout=None if build["output"].get("log", True) + else subprocess.DEVNULL, + stderr=subprocess.STDOUT + if build["output"].get("log", True) + else subprocess.DEVNULL) + clean_dir(pathlib.Path(build["output"]["directory"]), + build["output"].get("artifacts", ["*"])) + sys.exit(cproc.returncode) if __name__ == "__main__": main() |