diff --git a/osbuild b/osbuild index 968368d6..3659439d 100755 --- a/osbuild +++ b/osbuild @@ -13,7 +13,7 @@ BOLD = "\033[1m" RED = "\033[31m" -def run_interactive(pipeline_path, input_dir, output_dir, sit): +def run_interactive(pipeline_path, input_dir, output_dir): with open(pipeline_path) as f: pipeline = json.load(f) @@ -26,7 +26,7 @@ def run_interactive(pipeline_path, input_dir, output_dir, sit): print("Inspect with:") print(f"\t# nsenter -a --wd=/root -t `machinectl show {buildroot.machine_name} -p Leader --value`") print() - buildroot.run_stage(name, options, input_dir, sit) + buildroot.run_stage(name, options, input_dir) assembler = pipeline.get("assembler") if assembler: @@ -48,8 +48,6 @@ if __name__ == "__main__": help="provide the contents of DIRECTORY to the first stage") parser.add_argument("--output", dest="output_dir", metavar="DIRECTORY", type=os.path.abspath, help="provide the empty DIRECTORY as output argument to the last stage") - parser.add_argument("--sit", action="store_true", - help="keep the build environment up when a stage failed") args = parser.parse_args() os.makedirs("/run/osbuild", exist_ok=True) @@ -59,7 +57,7 @@ if __name__ == "__main__": sys.exit(1) try: - run_interactive(args.pipeline_path, args.input_dir, args.output_dir, args.sit) + run_interactive(args.pipeline_path, args.input_dir, args.output_dir) except KeyboardInterrupt: print() print(f"{RESET}{BOLD}{RED}Aborted{RESET}") diff --git a/osbuild.py b/osbuild.py index 656bd002..f109187c 100644 --- a/osbuild.py +++ b/osbuild.py @@ -71,7 +71,7 @@ class BuildRoot: *[f"--bind-ro={src}:{dest}" for src, dest in readonly_binds] ] + argv, *args, **kwargs) - def run_stage(self, stage, options={}, input_dir=None, sit=False): + def run_stage(self, stage, options={}, input_dir=None): options = { **options, "tree": "/tmp/tree", @@ -86,18 +86,13 @@ class BuildRoot: if input_dir: options["input_dir"] = "/tmp/input" robinds.append((input_dir, "/tmp/input")) - - argv = ["/tmp/run-stage"] - if sit: - argv.append("--sit") - argv.append("/tmp/stage") - try: - self.run(argv, readonly_binds=robinds, input=json.dumps(options), encoding="utf-8", check=True) + self.run(["/tmp/run-stage", "/tmp/stage"], readonly_binds=robinds, + input=json.dumps(options), encoding="utf-8", check=True) except subprocess.CalledProcessError as error: raise StageFailed(stage, error.returncode) - def run_assembler(self, name, options, output_dir=None, sit=False): + def run_assembler(self, name, options, output_dir=None): if output_dir and not os.path.exists(output_dir): os.makedirs(output_dir) @@ -118,13 +113,8 @@ class BuildRoot: options["output_dir"] = "/tmp/output" binds.append((output_dir, "/tmp/output")) - argv = ["/tmp/run-stage"] - if sit: - argv.append("--sit") - argv.append("/tmp/stage") - try: - self.run(argv, binds=binds, readonly_binds=robinds, input=json.dumps(options), encoding="utf-8", check=True) + self.run(["/tmp/run-stage", "/tmp/stage"], binds=binds, readonly_binds=robinds, input=json.dumps(options), encoding="utf-8", check=True) except subprocess.CalledProcessError as error: raise StageFailed(stage, error.returncode) diff --git a/run-stage b/run-stage index a5b027c0..343f6d11 100755 --- a/run-stage +++ b/run-stage @@ -10,7 +10,7 @@ BOLD = "\033[1m" RED = "\033[31m" -def main(stage, sit): +def main(stage): # ld.so.conf must exist, or `ldconfig` throws a warning subprocess.run(["touch", "/etc/ld.so.conf"], check=True) subprocess.run(["ldconfig"], check=True) @@ -26,19 +26,11 @@ def main(stage, sit): subprocess.run(["systemd-tmpfiles", "--create"]) r = subprocess.run([stage]) - if sit and r.returncode != 0: - import signal - print() - print(f"{RESET}{BOLD}{RED}Stage failed with code {r.returncode}{RESET}") - print("Keeping the build environment running...") - signal.pause() - return r.returncode if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("stage") - parser.add_argument("--sit", action="store_true") args = parser.parse_args() sys.exit(main(**vars(args)))