public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Fabian Groffen (grobian)" <grobian@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] portage r11109 - main/branches/prefix/pym/_emerge
Date: Thu, 17 Jul 2008 14:06:15 +0000	[thread overview]
Message-ID: <E1KJU7b-0004Gj-H8@stork.gentoo.org> (raw)

Author: grobian
Date: 2008-07-17 14:06:14 +0000 (Thu, 17 Jul 2008)
New Revision: 11109

Modified:
   main/branches/prefix/pym/_emerge/__init__.py
Log:
   Merged from trunk 11106:11107

   | 11107   | Reformat the status display. Here's an example: >>> Jobs: 0  |
   | zmedico | of 2 complete, 2 running Load average: 2.9, 2.4, 2.0 >>>     |
   |         | Jobs: 0 of 2 complete, 1 running, 2 merges Load average:     |
   |         | 2.8, 2.4, 2.0 >>> Jobs: 2 of 2 complete Load average: 2.6,   |
   |         | 2.3, 2.0                                                     |


Modified: main/branches/prefix/pym/_emerge/__init__.py
===================================================================
--- main/branches/prefix/pym/_emerge/__init__.py	2008-07-17 14:03:12 UTC (rev 11108)
+++ main/branches/prefix/pym/_emerge/__init__.py	2008-07-17 14:06:14 UTC (rev 11109)
@@ -23,6 +23,7 @@
 import array
 from collections import deque
 import fcntl
+import formatter
 import fpformat
 import logging
 import select
@@ -91,6 +92,11 @@
 except ImportError:
 	import pickle as cPickle
 
+try:
+	import cStringIO as StringIO
+except ImportError:
+	import StringIO
+
 class stdout_spinner(object):
 	scroll_msgs = [
 		"Gentoo Rocks ("+platform.system()+")",
@@ -8347,9 +8353,7 @@
 class JobStatusDisplay(object):
 
 	_bound_properties = ("curval", "merges", "running")
-	_msg_template = "Jobs: %(curval)s of %(maxval)s complete, " + \
-		"%(running)s running, %(merges)s merge%(merges_plural)s, " + \
-		"load average: %(load_avg)s"
+	_jobs_column_width = 45
 
 	def __init__(self, quiet=False):
 		object.__setattr__(self, "quiet", quiet)
@@ -8399,32 +8403,53 @@
 		running_str = str(self.running)
 		merges_str = str(self.merges)
 		load_avg_str = self._load_avg_str()
-		if self.merges == 1:
-			merges_plural = ""
-		else:
-			merges_plural = "s"
 
-		msg = self._msg_template % {
-			"curval"            : colorize("INFORM", curval_str),
-			"maxval"            : colorize("INFORM", maxval_str),
-			"running"           : colorize("INFORM", running_str),
-			"merges"            : colorize("INFORM", merges_str),
-			"merges_plural"     : merges_plural,
-			"load_avg"          : load_avg_str,
-		}
-		portage.writemsg_stdout(">>> %s\n" % (msg,), noiselevel=-1)
+		color_output = StringIO.StringIO()
+		plain_output = StringIO.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)
 
-		xterm_msg = self._msg_template % {
-			"curval"            : curval_str,
-			"maxval"            : maxval_str,
-			"running"           : running_str,
-			"merges"            : merges_str,
-			"merges_plural"     : merges_plural,
-			"load_avg"          : load_avg_str,
-		}
+		number_style = "INFORM"
+		f.add_literal_data("Jobs: ")
+		f.push_style(number_style)
+		f.add_literal_data(curval_str)
+		f.pop_style()
+		f.add_literal_data(" of ")
+		f.push_style(number_style)
+		f.add_literal_data(maxval_str)
+		f.pop_style()
+		f.add_literal_data(" complete")
 
-		xtermTitle(xterm_msg)
+		if self.running:
+			f.add_literal_data(", ")
+			f.push_style(number_style)
+			f.add_literal_data(running_str)
+			f.pop_style()
+			f.add_literal_data(" running")
 
+		if self.merges:
+			f.add_literal_data(", ")
+			f.push_style(number_style)
+			f.add_literal_data(merges_str)
+			f.pop_style()
+			f.add_literal_data(" merge")
+			if self.merges != 1:
+				f.add_literal_data("s")
+
+		padding = self._jobs_column_width - len(plain_output.getvalue())
+		if padding > 0:
+			f.add_literal_data(padding * " ")
+
+		f.add_literal_data("Load average: ")
+		f.add_literal_data(load_avg_str)
+
+		portage.writemsg_stdout(">>> %s\n" % \
+			(color_output.getvalue(),), noiselevel=-1)
+		xtermTitle(plain_output.getvalue())
+
 class Scheduler(PollScheduler):
 
 	_opts_ignore_blockers = \

-- 
gentoo-commits@lists.gentoo.org mailing list



                 reply	other threads:[~2008-07-17 14:06 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1KJU7b-0004Gj-H8@stork.gentoo.org \
    --to=grobian@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox