Fix clean not respecting defaults
Previously, clean read the defaults once, and then it updated the setting for each entry it read. This resulted in the defaults being clobbered and then not being respected for subsequent entries. This patch fixes the issue by re-reading the defaults before processing each item. The other plugins (link, shell) do not have this problem.
This commit is contained in:
parent
a7bfce3e23
commit
81f0d74955
|
@ -18,9 +18,9 @@ class Clean(dotbot.Plugin):
|
|||
def _process_clean(self, targets):
|
||||
success = True
|
||||
defaults = self._context.defaults().get(self._directive, {})
|
||||
force = defaults.get('force', False)
|
||||
for target in targets:
|
||||
if isinstance(targets, dict):
|
||||
force = defaults.get('force', False)
|
||||
if isinstance(targets, dict) and isinstance(targets[target], dict):
|
||||
force = targets[target].get('force', force)
|
||||
success &= self._clean(target, force)
|
||||
if success:
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
test_description='clean uses default unless overridden'
|
||||
. '../test-lib.bash'
|
||||
|
||||
test_expect_success 'setup' '
|
||||
ln -s /nowhere ~/.g
|
||||
'
|
||||
|
||||
test_expect_success 'run' '
|
||||
run_dotbot <<EOF
|
||||
- clean:
|
||||
~/nonexistent:
|
||||
force: true
|
||||
~/:
|
||||
EOF
|
||||
'
|
||||
|
||||
test_expect_success 'test' '
|
||||
test -h ~/.g
|
||||
'
|
Loading…
Reference in New Issue