subprocess: win32 don't have os.execvp() so have to run command in a shell
authorAlexander Belchenko <bialix@ukr.net>
Wed, 19 Jul 2006 20:52:50 +0000 (23:52 +0300)
committerAlexander Belchenko <bialix@ukr.net>
Wed, 19 Jul 2006 20:52:50 +0000 (23:52 +0300)
libbe/rcs.py

index ac9673457cc647ea5377a2935a89b1fe193ebaad..549691ac72a320b52faf2450bfd1daaf65ee9be2 100644 (file)
@@ -15,6 +15,8 @@
 #    along with this program; if not, write to the Free Software
 #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 from subprocess import Popen, PIPE
+import sys
+
 def rcs_by_name(rcs_name):
     """Return the module for the RCS with the given name"""
     if rcs_name == "Arch":
@@ -45,7 +47,11 @@ class CommandError(Exception):
         self.status = status
 
 def invoke(args, expect=(0,)):
-    q = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE)
+    if sys.platform != "win32":
+        q = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE)
+    else:
+        # win32 don't have os.execvp() so have to run command in a shell
+        q = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True)
     output = q.stdout.read()
     error = q.stderr.read()
     status = q.wait()