Fix bug with shell defaults
This commit is contained in:
parent
0b01d56d81
commit
f1e8297255
3 changed files with 48 additions and 6 deletions
|
@ -22,15 +22,21 @@ class Shell(dotbot.Plugin):
|
|||
with open(os.devnull, 'w') as devnull:
|
||||
for item in data:
|
||||
stdin = stdout = stderr = devnull
|
||||
if defaults.get('stdin', False) == True:
|
||||
stdin = None
|
||||
if defaults.get('stdout', False) == True:
|
||||
stdout = None
|
||||
if defaults.get('stderr', False) == True:
|
||||
stderr = None
|
||||
if isinstance(item, dict):
|
||||
cmd = item['command']
|
||||
msg = item.get('description', None)
|
||||
if item.get('stdin', defaults.get('stdin', False)) is True:
|
||||
stdin = None
|
||||
if item.get('stdout', defaults.get('stdout', False)) is True:
|
||||
stdout = None
|
||||
if item.get('stderr', defaults.get('stderr', False)) is True:
|
||||
stderr = None
|
||||
if 'stdin' in item:
|
||||
stdin = None if item['stdin'] == True else devnull
|
||||
if 'stdout' in item:
|
||||
stdout = None if item['stdout'] == True else devnull
|
||||
if 'stderr' in item:
|
||||
stderr = None if item['stderr'] == True else devnull
|
||||
elif isinstance(item, list):
|
||||
cmd = item[0]
|
||||
msg = item[1] if len(item) > 1 else None
|
||||
|
|
22
test/tests/shell-compact-stdout.bash
Normal file
22
test/tests/shell-compact-stdout.bash
Normal file
|
@ -0,0 +1,22 @@
|
|||
test_description='shell command stdout works in compact form'
|
||||
. '../test-lib.bash'
|
||||
|
||||
test_expect_success 'run' '
|
||||
(run_dotbot | grep "^apple") <<EOF
|
||||
- defaults:
|
||||
shell:
|
||||
stdout: true
|
||||
- shell:
|
||||
- echo apple
|
||||
EOF
|
||||
'
|
||||
|
||||
test_expect_success 'run 2' '
|
||||
(run_dotbot | grep "^apple") <<EOF
|
||||
- defaults:
|
||||
shell:
|
||||
stdout: true
|
||||
- shell:
|
||||
- [echo apple, "echoing message"]
|
||||
EOF
|
||||
'
|
14
test/tests/shell-override-default.bash
Normal file
14
test/tests/shell-override-default.bash
Normal file
|
@ -0,0 +1,14 @@
|
|||
test_description='shell command can override default'
|
||||
. '../test-lib.bash'
|
||||
|
||||
test_expect_success 'run' '
|
||||
(run_dotbot | (! grep "^apple")) <<EOF
|
||||
- defaults:
|
||||
shell:
|
||||
stdout: true
|
||||
- shell:
|
||||
-
|
||||
command: echo apple
|
||||
stdout: false
|
||||
EOF
|
||||
'
|
Loading…
Reference in a new issue