From d11c0ac819a7509332f5277099ad2b6e969c8414 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 11 Jun 2008 03:37:55 +0000 Subject: Use spawn() instead of system(). svn path=/main/trunk/; revision=10642 --- bin/dispatch-conf | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'bin/dispatch-conf') diff --git a/bin/dispatch-conf b/bin/dispatch-conf index ec19e1e4d..8ae055565 100755 --- a/bin/dispatch-conf +++ b/bin/dispatch-conf @@ -217,10 +217,12 @@ class dispatch: while 1: clear_screen() if show_new_diff: - os.system((self.options['diff']) % (conf['new'], mrgconf)) + cmd = self.options['diff'] % (conf['new'], mrgconf) + spawn_shell(cmd) show_new_diff = 0 else: - os.system((self.options['diff']) % (conf['current'], newconf)) + cmd = self.options['diff'] % (conf['current'], newconf) + spawn_shell(cmd) print print '>> (%i of %i) -- %s' % (count, len(confs), conf ['current']) @@ -392,6 +394,20 @@ def clear_screen(): pass os.system("clear 2>/dev/null") +from portage.process import find_binary, spawn +shell = os.environ.get("SHELL") +if not shell or not os.access(shell, os.EX_OK): + shell = find_binary("sh") + +def spawn_shell(cmd): + if shell: + spawn([shell, "-c", cmd], env=os.environ, + fd_pipes = { 0 : sys.stdin.fileno(), + 1 : sys.stdout.fileno(), + 2 : sys.stderr.fileno()}) + else: + os.system(cmd) + # run d = dispatch () -- cgit v1.2.3-1-g7c22