Add quiet option to shell plugin
This commit is contained in:
parent
fe9ca6f5ed
commit
3bda18ed9c
2 changed files with 11 additions and 2 deletions
|
@ -251,8 +251,9 @@ shell command and the second is an optional human-readable description.
|
|||
|
||||
Shell commands support an extended syntax as well, which provides more
|
||||
fine-grained control. A command can be specified as a dictionary that contains
|
||||
the command to be run, a description, and whether `stdin`, `stdout`, and
|
||||
`stderr` are enabled. In this syntax, all keys are optional except for the
|
||||
the command to be run, a description, whether to suppress outputting the
|
||||
command in the display via `quiet`, and whether `stdin`, `stdout`,
|
||||
and `stderr` are enabled. In this syntax, all keys are optional except for the
|
||||
command itself.
|
||||
|
||||
#### Example
|
||||
|
@ -266,6 +267,7 @@ command itself.
|
|||
stdin: true
|
||||
stdout: true
|
||||
description: Reading and printing variable
|
||||
quiet: true
|
||||
-
|
||||
command: read fail
|
||||
stderr: true
|
||||
|
|
|
@ -22,12 +22,15 @@ class Shell(dotbot.Plugin):
|
|||
with open(os.devnull, 'w') as devnull:
|
||||
for item in data:
|
||||
stdin = stdout = stderr = devnull
|
||||
quiet = False
|
||||
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 defaults.get('quiet', False) == True:
|
||||
quiet = True
|
||||
if isinstance(item, dict):
|
||||
cmd = item['command']
|
||||
msg = item.get('description', None)
|
||||
|
@ -37,6 +40,8 @@ class Shell(dotbot.Plugin):
|
|||
stdout = None if item['stdout'] == True else devnull
|
||||
if 'stderr' in item:
|
||||
stderr = None if item['stderr'] == True else devnull
|
||||
if 'quiet' in item:
|
||||
quiet = True if item['quiet'] == True else False
|
||||
elif isinstance(item, list):
|
||||
cmd = item[0]
|
||||
msg = item[1] if len(item) > 1 else None
|
||||
|
@ -45,6 +50,8 @@ class Shell(dotbot.Plugin):
|
|||
msg = None
|
||||
if msg is None:
|
||||
self._log.lowinfo(cmd)
|
||||
elif quiet:
|
||||
self._log.lowinfo('%s' % msg)
|
||||
else:
|
||||
self._log.lowinfo('%s [%s]' % (msg, cmd))
|
||||
executable = os.environ.get('SHELL')
|
||||
|
|
Loading…
Reference in a new issue