diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-06-11 03:37:55 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-06-11 03:37:55 +0000 |
commit | d11c0ac819a7509332f5277099ad2b6e969c8414 (patch) | |
tree | aa9fc01581abd6bec5cfb453e0b1b15aa3d4f4a0 | |
parent | 148a587d0b6e1bea2ca7f798a13edacc756930ec (diff) | |
download | portage-d11c0ac819a7509332f5277099ad2b6e969c8414.tar.gz portage-d11c0ac819a7509332f5277099ad2b6e969c8414.tar.bz2 portage-d11c0ac819a7509332f5277099ad2b6e969c8414.zip |
Use spawn() instead of system().
svn path=/main/trunk/; revision=10642
-rwxr-xr-x | bin/dispatch-conf | 20 |
1 files changed, 18 insertions, 2 deletions
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 () |