From aff20e9557e0a9dc0b9f45c519e357cedfb4e48f Mon Sep 17 00:00:00 2001 From: yrriban Date: Tue, 15 Apr 2025 22:49:22 -0400 Subject: [PATCH] Add a base class for commands that provides wad and map arguments. --- dcc/doom_base.py | 8 ++++++++ dcc/fabricate.py | 10 ++-------- dcc/pb.py | 10 ++-------- dcc/play.py | 10 ++-------- dcc/put.py | 10 ++-------- dcc/record.py | 10 ++-------- 6 files changed, 18 insertions(+), 40 deletions(-) create mode 100644 dcc/doom_base.py diff --git a/dcc/doom_base.py b/dcc/doom_base.py new file mode 100644 index 0000000..5ec84e4 --- /dev/null +++ b/dcc/doom_base.py @@ -0,0 +1,8 @@ +from cliff.command import Command + +class WadMap(Command): + def get_parser(self, prog_name): + parser = super().get_parser(prog_name) + parser.add_argument('wad') + parser.add_argument('map') + return parser diff --git a/dcc/fabricate.py b/dcc/fabricate.py index 31f3ac7..bb3ba7e 100644 --- a/dcc/fabricate.py +++ b/dcc/fabricate.py @@ -1,14 +1,8 @@ -from cliff.command import Command import dcc.config +import dcc.doom_base import subprocess -class Fabricate(Command): - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - parser.add_argument('wad') - parser.add_argument('map') - return parser - +class Fabricate(dcc.doom_base.WadMap): def take_action(self, parsed_args): subprocess.run([dcc.config.DSDA] + dcc.config.DsdaPreamble(parsed_args.wad, parsed_args.map) + diff --git a/dcc/pb.py b/dcc/pb.py index 5ed3883..f37f23b 100644 --- a/dcc/pb.py +++ b/dcc/pb.py @@ -1,14 +1,8 @@ -from cliff.command import Command import dcc.config +import dcc.doom_base import vlc -class PB(Command): - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - parser.add_argument('wad') - parser.add_argument('map') - return parser - +class PB(dcc.doom_base.WadMap): def take_action(self, parsed_args): v = dcc.config.VideoPath(parsed_args.wad, parsed_args.map) mp = vlc.MediaPlayer(v) diff --git a/dcc/play.py b/dcc/play.py index 2f272f6..876439f 100644 --- a/dcc/play.py +++ b/dcc/play.py @@ -1,13 +1,7 @@ -from cliff.command import Command import dcc.config +import dcc.doom_base import subprocess -class Play(Command): - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - parser.add_argument('wad') - parser.add_argument('map') - return parser - +class Play(dcc.doom_base.WadMap): def take_action(self, parsed_args): subprocess.run([dcc.config.DSDA] + dcc.config.DsdaPreamble(parsed_args.wad, parsed_args.map)) diff --git a/dcc/put.py b/dcc/put.py index 57d398b..7c50ad1 100644 --- a/dcc/put.py +++ b/dcc/put.py @@ -1,14 +1,8 @@ -from cliff.command import Command import boto3 import dcc.config +import dcc.doom_base -class Put(Command): - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - parser.add_argument('wad') - parser.add_argument('map') - return parser - +class Put(dcc.doom_base.WadMap): # TODO: accept configuration for bucket name def take_action(self, parsed_args): s3_client = boto3.client('s3') diff --git a/dcc/record.py b/dcc/record.py index 98ea3ae..c53998c 100644 --- a/dcc/record.py +++ b/dcc/record.py @@ -1,14 +1,8 @@ -from cliff.command import Command import dcc.config +import dcc.doom_base.WadMap import subprocess -class Record(Command): - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - parser.add_argument('wad') - parser.add_argument('map') - return parser - +class Record(dcc.doom_base.WadMap): def take_action(self, parsed_args): subprocess.run([dcc.config.DSDA] + dcc.config.DsdaPreamble(parsed_args.wad, parsed_args.map) +