@@ -34,6 +34,33 @@ class LogCommand(command.Command, log.Loggable):
|
||||
command.Command.__init__(self, parentCommand, **kwargs)
|
||||
self.logCategory = self.name
|
||||
|
||||
def parse(self, argv):
|
||||
cmd = self.getRootCommand()
|
||||
if hasattr(cmd, 'config'):
|
||||
config = cmd.config
|
||||
# find section name
|
||||
cmd = self
|
||||
section = []
|
||||
while cmd is not None:
|
||||
section.insert(0, cmd.name)
|
||||
cmd = cmd.parentCommand
|
||||
section = '.'.join(section)
|
||||
# get defaults from config
|
||||
defaults = {}
|
||||
for opt in self.parser.option_list:
|
||||
if opt.dest is None:
|
||||
continue
|
||||
if 'string' == opt.type:
|
||||
val = config.get(section, opt.dest)
|
||||
elif opt.action in ('store_false', 'store_true'):
|
||||
val = config.getboolean(section, opt.dest)
|
||||
else:
|
||||
val = None
|
||||
if val is not None:
|
||||
defaults[opt.dest] = val
|
||||
self.parser.set_defaults(**defaults)
|
||||
command.Command.parse(self, argv)
|
||||
|
||||
# command.Command has a fake debug method, so choose the right one
|
||||
|
||||
def debug(self, format, *args):
|
||||
|
||||
@@ -224,11 +224,13 @@ Log files will log the path to tracks relative to this directory.
|
||||
help="output directory; will be included in file paths in result "
|
||||
"files "
|
||||
"(defaults to absolute path to current directory; set to "
|
||||
"empty if you want paths to be relative instead) ")
|
||||
"empty if you want paths to be relative instead; "
|
||||
"configured value: %default) ")
|
||||
self.parser.add_option('-W', '--working-directory',
|
||||
action="store", dest="working_directory",
|
||||
help="working directory; morituri will change to this directory "
|
||||
"and files will be created relative to it when not absolute ")
|
||||
"and files will be created relative to it when not absolute "
|
||||
"(configured value: %default) ")
|
||||
|
||||
rcommon.addTemplate(self)
|
||||
|
||||
@@ -239,8 +241,8 @@ Log files will log the path to tracks relative to this directory.
|
||||
|
||||
self.parser.add_option('', '--profile',
|
||||
action="store", dest="profile",
|
||||
help="profile for encoding (default '%s', choices '%s')" % (
|
||||
default, "', '".join(encode.PROFILES.keys())),
|
||||
help="profile for encoding (default '%%default', choices '%s')" % (
|
||||
"', '".join(encode.PROFILES.keys())),
|
||||
default=default)
|
||||
self.parser.add_option('-U', '--unknown',
|
||||
action="store_true", dest="unknown",
|
||||
@@ -270,6 +272,11 @@ Install pycdio and run 'rip offset find' to detect your drive's offset.
|
||||
options.offset)
|
||||
if self.options.output_directory is None:
|
||||
self.options.output_directory = os.getcwd()
|
||||
else:
|
||||
self.options.output_directory = os.path.expanduser(self.options.output_directory)
|
||||
|
||||
if self.options.working_directory is not None:
|
||||
self.options.working_directory = os.path.expanduser(self.options.working_directory)
|
||||
|
||||
if self.options.logger:
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user