From: S.Çağlar Onur Date: Thu, 26 Aug 2010 19:49:45 +0000 (-0400) Subject: Revert "replace deprecated popen2 with subprocess" X-Git-Tag: bootmanager-5.0-12~1 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=e33917845bcb7537ced58a3acaa8c297d8eba1f1;hp=9c46d734af375c1d6dd610cb2d451a58f97d0232;p=bootmanager.git Revert "replace deprecated popen2 with subprocess" This reverts commit 37388b93f7ef01f73393a26e0db22dc80b74a620. --- diff --git a/source/utils.py b/source/utils.py index f57a0a3..10607cc 100644 --- a/source/utils.py +++ b/source/utils.py @@ -11,8 +11,7 @@ # expected /proc/partitions format import os, sys, shutil -import subprocess -import shlex +import popen2 import socket import fcntl import string @@ -133,19 +132,18 @@ def sysexec( cmd, log= None, fsck = False ): if VERBOSE_MODE: print ("sysexec >>> %s" % cmd) - try: - prog = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE, stderr=subprocess.PIPE) - except OSError: + prog = popen2.Popen4( cmd, 0 ) + if prog is None: raise BootManagerException, \ - "Unable to create instance of subprocess.Popen " \ + "Unable to create instance of popen2.Popen4 " \ "for command: %s" % cmd - try: - (stdoutdata, stderrdata) = prog.communicate() - except KeyboardInterrupt: - raise BootManagerException, "Interrupted by user" if log is not None: - log.write(stdoutdata) + try: + for line in prog.fromchild: + log.write( line ) + except KeyboardInterrupt: + raise BootManagerException, "Interrupted by user" returncode = prog.wait() @@ -164,7 +162,6 @@ def sysexec( cmd, log= None, fsck = False ): else: if returncode != 0: raise BootManagerException, "Running %s failed (rc=%d)" % (cmd,returncode) - prog = None return 1