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