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