示例#1
0
    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()))
示例#2
0
	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()))