Skip to content

Commit

Permalink
Merge 6d7b6cc into 660d3a2
Browse files Browse the repository at this point in the history
  • Loading branch information
rbdixon committed Aug 3, 2019
2 parents 660d3a2 + 6d7b6cc commit df8f6dc
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 1 deletion.
6 changes: 6 additions & 0 deletions doit/cmd_base.py
Expand Up @@ -578,6 +578,12 @@ def execute(self, params, args):
if not legacy_loader:
self.task_list = self.loader.load_tasks(cmd=self, pos_args=args)

# Add task options from config, if present
for task in self.task_list:
task_stanza = 'task:' + task.name
if task_stanza in self.config:
task.cfg_values = self.config[task_stanza]

# hack to pass parameter into _execute() calls that are not part
# of command line options
params['pos_args'] = args
Expand Down
2 changes: 2 additions & 0 deletions doit/control.py
Expand Up @@ -158,6 +158,8 @@ def add_filtered_task(seq, f_name):
the_task = self.tasks[f_name]
# remaining items are other tasks not positional options
taskcmd = TaskParse([CmdOption(opt) for opt in the_task.params])
if the_task.cfg_values is not None:
taskcmd.overwrite_defaults(the_task.cfg_values)
the_task.options, seq = taskcmd.parse(seq)
# if task takes positional parameters set all as pos_arg_val
if the_task.pos_arg is not None:
Expand Down
6 changes: 5 additions & 1 deletion doit/task.py
Expand Up @@ -131,6 +131,7 @@ class Task(object):
@ivar pos_arg_val: (list - str) list of positional parameters values
@ivar custom_title: function reference that takes a task object as
parameter and returns a string.
@ivar cfg_values: Default task parameters from doit.cfg
"""

DEFAULT_VERBOSITY = 1
Expand Down Expand Up @@ -163,7 +164,7 @@ def __init__(self, name, actions, file_dep=(), targets=(),
subtask_of=None, has_subtask=False,
doc=None, params=(), pos_arg=None,
verbosity=None, title=None, getargs=None,
watch=(), loader=None):
watch=(), loader=None, cfg_values=None):
"""sanity checks and initialization
@param params: (list of dict for parameters) see cmdparse.CmdOption
Expand Down Expand Up @@ -230,6 +231,7 @@ def __init__(self, name, actions, file_dep=(), targets=(),
self.values = {}
self.verbosity = verbosity
self.custom_title = title
self.cfg_values = cfg_values

# clean
if clean is True:
Expand Down Expand Up @@ -366,6 +368,8 @@ def init_options(self):
"""
if self.options is None:
taskcmd = TaskParse([CmdOption(opt) for opt in self.params])
if self.cfg_values is not None:
taskcmd.overwrite_defaults(self.cfg_values)
# ignore positional parameters
self.options = taskcmd.parse('')[0]

Expand Down

0 comments on commit df8f6dc

Please sign in to comment.