import os import subprocess import shutil from . import util GZDOOM_PATHS = [ shutil.which("uzdoom") ] SLADE_PATHS = [] GZDOOM_PROJECT = "iwadinfo.txt" class Project(): def __init__(self, path): self.path = path def run(self): subprocess.run([find_gzdoom_command(), "-iwad", "."], cwd=self.path) def edit(self): subprocess.run([find_slade_command(), "."], cwd=self.path) def find_gzdoom_command(): for exe in GZDOOM_PATHS: if exe and os.path.exists(exe): return exe return "gzdoom" def find_slade_command(): for exe in SLADE_PATHS: if os.path.exists(exe): return exe return "slade" def find_project(path): path = util.find_nearest(path, lambda entry: entry.lower() == GZDOOM_PROJECT) if path is not None: return Project(path)