diff options
author | Lars Wirzenius <liw@liw.fi> | 2013-03-13 21:23:22 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2013-03-13 21:23:22 +0000 |
commit | 9b8176d4c122d15eec80f23ebe70954045e7bbde (patch) | |
tree | e1aa511f85963a98c8c17d4289de2394a465fd18 | |
parent | 2c198cb79729ebc8f44e0e326db71e4ef18cde3b (diff) | |
parent | cf89ed0cb38d0304ff6f97fbd4892c42f88a2918 (diff) | |
download | cliapp-1.20130313.tar.gz |
Merge from canonical branchcliapp-1.20130313
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | cliapp/runcmd.py | 23 |
2 files changed, 17 insertions, 8 deletions
@@ -40,6 +40,8 @@ Version 1.20130313 work over ssh. * New function `cliapp.shell_quote` quotes strings for passing as shell arguments. +* `cliapp.runcmd` now has a new keyword argument: `log_error`. If set to + false, errors are not logged. Defaults to true. Bug fixes: diff --git a/cliapp/runcmd.py b/cliapp/runcmd.py index 10b75ef..c578059 100644 --- a/cliapp/runcmd.py +++ b/cliapp/runcmd.py @@ -40,19 +40,26 @@ def runcmd(argv, *args, **kwargs): ''' - if 'ignore_fail' in kwargs: - ignore_fail = kwargs['ignore_fail'] - del kwargs['ignore_fail'] - else: - ignore_fail = False + our_options = ( + ('ignore_fail', False), + ('log_error', True), + ) + opts = {} + for name, default in our_options: + opts[name] = default + if name in kwargs: + opts[name] = kwargs[name] + del kwargs[name] exit, out, err = runcmd_unchecked(argv, *args, **kwargs) if exit != 0: msg = 'Command failed: %s\n%s' % (' '.join(argv), err) - if ignore_fail: - logging.info(msg) + if opts['ignore_fail']: + if opts['log_error']: + logging.info(msg) else: - logging.error(msg) + if opts['log_error']: + logging.error(msg) raise cliapp.AppException(msg) return out |