public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] portage r11109 - main/branches/prefix/pym/_emerge
@ 2008-07-17 14:06 Fabian Groffen (grobian)
  0 siblings, 0 replies; only message in thread
From: Fabian Groffen (grobian) @ 2008-07-17 14:06 UTC (permalink / raw
  To: gentoo-commits

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



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-07-17 14:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-17 14:06 [gentoo-commits] portage r11109 - main/branches/prefix/pym/_emerge Fabian Groffen (grobian)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox