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