From ac29c5c49bb9c22f28f9db9cc643dcfa8a7960ff Mon Sep 17 00:00:00 2001 From: yrriban Date: Thu, 24 Apr 2025 18:05:28 -0400 Subject: [PATCH] Add support for rendering in the background. --- dcc/fabricate.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/dcc/fabricate.py b/dcc/fabricate.py index 0d1ae0a..c021a50 100644 --- a/dcc/fabricate.py +++ b/dcc/fabricate.py @@ -1,14 +1,23 @@ import contextlib import dcc.config import dcc.doom_base +import shutil import subprocess import tempfile class Fabricate(dcc.doom_base.WadMap): + def get_parser(self, prog_name): + parser = super().get_parser(prog_name) + parser.add_argument("--fg", action="store_true") + return parser + def take_action(self, parsed_args): with tempfile.TemporaryDirectory() as td: with contextlib.chdir(td): - subprocess.run([dcc.config.DSDA] + + command = [dcc.config.DSDA] + if not parsed_args.fg and shutil.which("xvfb-run") is not None: + command = ["xvfb-run"] + command + subprocess.run(command + dcc.config.DsdaPreamble(parsed_args.wad, parsed_args.map) + ["-timedemo", dcc.config.DemoInPath(parsed_args.wad, parsed_args.map)] + ["-viddump", dcc.config.VideoPath(parsed_args.wad, parsed_args.map)])