summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2013-03-13 21:23:22 +0000
committerLars Wirzenius <liw@liw.fi>2013-03-13 21:23:22 +0000
commit9b8176d4c122d15eec80f23ebe70954045e7bbde (patch)
treee1aa511f85963a98c8c17d4289de2394a465fd18
parent2c198cb79729ebc8f44e0e326db71e4ef18cde3b (diff)
parentcf89ed0cb38d0304ff6f97fbd4892c42f88a2918 (diff)
downloadcliapp-1.20130313.tar.gz
Merge from canonical branchcliapp-1.20130313
-rw-r--r--NEWS2
-rw-r--r--cliapp/runcmd.py23
2 files changed, 17 insertions, 8 deletions
diff --git a/NEWS b/NEWS
index 729fe41..89696d8 100644
--- a/NEWS
+++ b/NEWS
@@ -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