import cliff.command import dcc.config import os class List(cliff.command.Command): def get_parser(self, prog_name): parser = super().get_parser(prog_name) parser.add_argument("target") parser.add_argument("--wad") return parser def take_action(self, parsed_args): match parsed_args.target: case "pwads": self.list(x.name for x in os.scandir(dcc.config.PWADS) if x.is_dir()) case "iwads": self.list(x.name for x in os.scandir(dcc.config.IWADS) if x.is_file()) case "demos": self.list(x.name for x in os.scandir(dcc.config.DEMOS.joinpath(parsed_args.wad)) if x.name.endswith(".lmp")) case "videos": self.list(x.name for x in os.scandir(dcc.config.OUTPUT.joinpath(parsed_args.wad)) if x.name.endswith(".mp4")) def list(self, gen): # TODO: fancy text? for i in sorted(gen): print(i)