def _display_status(self): # Don't use len(self._completed_tasks) here since that also # can include uninstall tasks. curval_str = str(self.curval) maxval_str = str(self.maxval) running_str = str(self.running) failed_str = str(self.failed) load_avg_str = self._load_avg_str() color_output = StringIO() plain_output = StringIO() style_file = portage.output.ConsoleStyleFile(color_output) style_file.write_listener = plain_output style_writer = portage.output.StyleWriter(file=style_file, maxcol=9999) style_writer.style_listener = style_file.new_styles f = formatter.AbstractFormatter(style_writer) number_style = "INFORM" f.add_literal_data(_unicode_decode("Jobs: ")) f.push_style(number_style) f.add_literal_data(_unicode_decode(curval_str)) f.pop_style() f.add_literal_data(_unicode_decode(" of ")) f.push_style(number_style) f.add_literal_data(_unicode_decode(maxval_str)) f.pop_style() f.add_literal_data(_unicode_decode(" complete")) if self.running: f.add_literal_data(_unicode_decode(", ")) f.push_style(number_style) f.add_literal_data(_unicode_decode(running_str)) f.pop_style() f.add_literal_data(_unicode_decode(" running")) if self.failed: f.add_literal_data(_unicode_decode(", ")) f.push_style(number_style) f.add_literal_data(_unicode_decode(failed_str)) f.pop_style() f.add_literal_data(_unicode_decode(" failed")) padding = self._jobs_column_width - len(plain_output.getvalue()) if padding > 0: f.add_literal_data(padding * _unicode_decode(" ")) f.add_literal_data(_unicode_decode("Load avg: ")) f.add_literal_data(_unicode_decode(load_avg_str)) # Truncate to fit width, to avoid making the terminal scroll if the # line overflows (happens when the load average is large). plain_output = plain_output.getvalue() if self._isatty and len(plain_output) > self.width: # Use plain_output here since it's easier to truncate # properly than the color output which contains console # color codes. self._update(plain_output[:self.width]) else: self._update(color_output.getvalue()) if self.xterm_titles: xtermTitle(" ".join(plain_output.split()))