From 00af1784b1652f3bed04c63e2faaeb03ca185ed4 Mon Sep 17 00:00:00 2001 From: necoro <> Date: Tue, 24 Jul 2007 21:28:14 +0000 Subject: made the resume_loop-plugin change titles too --- doc/Changelog | 1 + doc/Hooks | 1 + plugins/resume_loop.xml | 2 +- portato/gui/gui_helper.py | 2 +- portato/plugins/resume_loop.py | 23 ++++++++++++++++++----- 5 files changed, 22 insertions(+), 7 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 0eb8d51..1cf2be9 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -5,6 +5,7 @@ next: - changed plugin-structures - added ability of pausing the emerge process - nicier log output +- log viewers 0.7.5: - new icon by p4r4d0x diff --git a/doc/Hooks b/doc/Hooks index 58dabd7..43dfe3b 100644 --- a/doc/Hooks +++ b/doc/Hooks @@ -15,6 +15,7 @@ Parameters: - string[] packages: Packages to emerge (includes "world", "system"). - string[] command: The exact command to execute. - portato.gui.wrapper.Console console: The console the output will be written to. + - function(string) -> None title_update: Function which updates the console title in the GUIs. Return if override: Nothing diff --git a/plugins/resume_loop.xml b/plugins/resume_loop.xml index 14575cd..01dca78 100644 --- a/plugins/resume_loop.xml +++ b/plugins/resume_loop.xml @@ -5,7 +5,7 @@ portato.plugins.resume_loop - + diff --git a/portato/gui/gui_helper.py b/portato/gui/gui_helper.py index f9dd3fe..1c8c411 100644 --- a/portato/gui/gui_helper.py +++ b/portato/gui/gui_helper.py @@ -491,7 +491,7 @@ class EmergeQueue: @param command: the command to execute - default is "/usr/bin/python /usr/bin/emerge" @type command: string[]""" - @plugin.hook("emerge", packages = packages, command = command, console = self.console) + @plugin.hook("emerge", packages = packages, command = command, console = self.console, title_update = self.title_update) def sub_emerge(command): if command is None: command = system.get_merge_command() diff --git a/portato/plugins/resume_loop.py b/portato/plugins/resume_loop.py index 45c735a..b33f4c7 100644 --- a/portato/plugins/resume_loop.py +++ b/portato/plugins/resume_loop.py @@ -10,17 +10,19 @@ # # Written by René 'Necoro' Neumann -import pty -from subprocess import call, STDOUT +import pty, time +from subprocess import Popen, STDOUT from portato.backend import system from portato.helper import debug, warning console = None +title_update = None command = "until emerge --resume --skipfirst; do : ; done" -def set_console (*args, **kwargs): - global console +def set_data (*args, **kwargs): + global console, title_update console = kwargs["console"] + title_update = kwargs["title_update"] def resume_loop (retcode, *args, **kwargs): if retcode is None: @@ -36,4 +38,15 @@ def resume_loop (retcode, *args, **kwargs): # open tty (master, slave) = pty.openpty() console.set_pty(master) - call(command, stdout = slave, stderr = STDOUT, shell = True, env = system.get_environment()) + p = Popen(command, stdout = slave, stderr = STDOUT, shell = True, env = system.get_environment()) + + # update titles + old_title = console.get_window_title() + while p and p.poll() is None: + if title_update : + title = console.get_window_title() + if title != old_title: + title_update(title) + time.sleep(0.5) + + if title_update: title_update(None) -- cgit v1.2.3