Revision ff1c0296 kamaki/cli/commands/__init__.py
b/kamaki/cli/commands/__init__.py | ||
---|---|---|
34 | 34 |
from kamaki.cli.logger import get_logger |
35 | 35 |
from kamaki.cli.utils import print_json, print_items, filter_dicts_by_dict |
36 | 36 |
from kamaki.cli.argument import FlagArgument, ValueArgument |
37 |
from sys import stdin, stdout |
|
37 |
from sys import stdin, stdout, stderr
|
|
38 | 38 |
|
39 | 39 |
log = get_logger(__name__) |
40 | 40 |
|
... | ... | |
62 | 62 |
|
63 | 63 |
def __init__( |
64 | 64 |
self, |
65 |
arguments={}, auth_base=None, cloud=None, _in=None, _out=None): |
|
66 |
self._in, self._out = _in or stdin, _out or stdout |
|
65 |
arguments={}, auth_base=None, cloud=None, |
|
66 |
_in=None, _out=None, _err=None): |
|
67 |
self._in, self._out, self._err = ( |
|
68 |
_in or stdin, _out or stdout, _err or stderr) |
|
67 | 69 |
if hasattr(self, 'arguments'): |
68 | 70 |
arguments.update(self.arguments) |
69 | 71 |
if isinstance(self, _optional_output_cmd): |
... | ... | |
86 | 88 |
self.auth_base = auth_base or getattr(self, 'auth_base', None) |
87 | 89 |
self.cloud = cloud or getattr(self, 'cloud', None) |
88 | 90 |
|
91 |
def write(self, s): |
|
92 |
self._out.write(u'%s' % s) |
|
93 |
self._out.flush() |
|
94 |
|
|
95 |
def writeln(self, s=''): |
|
96 |
self.write(u'%s\n' % s) |
|
97 |
|
|
98 |
def error(self, s=''): |
|
99 |
self._err.write(u'%s\n' % s) |
|
100 |
self._err.flush() |
|
101 |
|
|
89 | 102 |
@DontRaiseKeyError |
90 | 103 |
def _custom_url(self, service): |
91 | 104 |
return self.config.get_cloud(self.cloud, '%s_url' % service) |
... | ... | |
145 | 158 |
"""Try to get a progress bar, but do not raise errors""" |
146 | 159 |
try: |
147 | 160 |
progress_bar = self.arguments[arg] |
161 |
progress_bar.file = self._err |
|
148 | 162 |
gen = progress_bar.get_generator(msg) |
149 | 163 |
except Exception: |
150 | 164 |
return (None, None) |
Also available in: Unified diff