Split out a separate wad-only base class from WadMap. Load the wad-specific config when using it. Support overriding settings during fabricate.
This commit is contained in:
parent
057ac98843
commit
970e63e19b
3 changed files with 37 additions and 11 deletions
|
@ -3,24 +3,46 @@ from cliff.command import Command
|
|||
import dcc.config
|
||||
import io
|
||||
import os
|
||||
import tomlkit
|
||||
|
||||
class WadMap(dcc.config.Base):
|
||||
class Wad(dcc.config.Base):
|
||||
def get_parser(self, prog_name):
|
||||
parser = super().get_parser(prog_name)
|
||||
parser.add_argument('wad')
|
||||
return parser
|
||||
|
||||
def wad_init(self, parsed_args):
|
||||
self.init_base(parsed_args)
|
||||
self._wad = parsed_args.wad
|
||||
wcp = self.pwads.joinpath(self.wad).joinpath(self.config_name)
|
||||
if wcp.exists():
|
||||
self._wad_config = tomlkit.toml_file.TOMLFile(wcp).read()
|
||||
for k,v in self._wad_config.value.items():
|
||||
print(k,v)
|
||||
self._config.add(k,v)
|
||||
|
||||
def run(self, parsed_args):
|
||||
self.wad_init(self, parsed_args)
|
||||
self.take_action(parsed_args)
|
||||
|
||||
@property
|
||||
def wad(self):
|
||||
return self._wad
|
||||
|
||||
|
||||
class WadMap(Wad):
|
||||
def get_parser(self, prog_name):
|
||||
parser = super().get_parser(prog_name)
|
||||
parser.add_argument('map')
|
||||
parser.add_argument('-n','--name','--demo_name')
|
||||
return parser
|
||||
|
||||
def run(self, parsed_args):
|
||||
self._wad = parsed_args.wad
|
||||
self._map = parsed_args.map
|
||||
self._name = parsed_args.name
|
||||
super().run(parsed_args)
|
||||
self.wad_init(parsed_args)
|
||||
|
||||
@property
|
||||
def wad(self):
|
||||
return self._wad
|
||||
self.take_action(parsed_args)
|
||||
|
||||
@property
|
||||
def map(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue