Mercurial > hg
comparison mercurial/util.py @ 7123:716277f5867e
util: subprocess close_fds option is unix only
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Sat, 18 Oct 2008 15:49:15 +0200 |
parents | 619ebf82cef2 |
children | 0c63b87d9bce |
comparison
equal
deleted
inserted
replaced
7122:3cf699e89e48 | 7123:716277f5867e |
---|---|
49 _sha1 = sha.sha | 49 _sha1 = sha.sha |
50 return _sha1(s) | 50 return _sha1(s) |
51 | 51 |
52 try: | 52 try: |
53 import subprocess | 53 import subprocess |
54 closefds = os.name == 'posix' | |
54 def popen2(cmd, mode='t', bufsize=-1): | 55 def popen2(cmd, mode='t', bufsize=-1): |
55 p = subprocess.Popen(cmd, shell=True, bufsize=bufsize, close_fds=True, | 56 p = subprocess.Popen(cmd, shell=True, bufsize=bufsize, |
57 close_fds=closefds, | |
56 stdin=subprocess.PIPE, stdout=subprocess.PIPE) | 58 stdin=subprocess.PIPE, stdout=subprocess.PIPE) |
57 return p.stdin, p.stdout | 59 return p.stdin, p.stdout |
58 def popen3(cmd, mode='t', bufsize=-1): | 60 def popen3(cmd, mode='t', bufsize=-1): |
59 p = subprocess.Popen(cmd, shell=True, bufsize=bufsize, close_fds=True, | 61 p = subprocess.Popen(cmd, shell=True, bufsize=bufsize, |
62 close_fds=closefds, | |
60 stdin=subprocess.PIPE, stdout=subprocess.PIPE, | 63 stdin=subprocess.PIPE, stdout=subprocess.PIPE, |
61 stderr=subprocess.PIPE) | 64 stderr=subprocess.PIPE) |
62 return p.stdin, p.stdout, p.stderr | 65 return p.stdin, p.stdout, p.stderr |
63 def Popen3(cmd, capturestderr=False, bufsize=-1): | 66 def Popen3(cmd, capturestderr=False, bufsize=-1): |
64 stderr = capturestderr and subprocess.PIPE or None | 67 stderr = capturestderr and subprocess.PIPE or None |
65 p = subprocess.Popen(cmd, shell=True, bufsize=bufsize, close_fds=True, | 68 p = subprocess.Popen(cmd, shell=True, bufsize=bufsize, |
69 close_fds=closefds, | |
66 stdin=subprocess.PIPE, stdout=subprocess.PIPE, | 70 stdin=subprocess.PIPE, stdout=subprocess.PIPE, |
67 stderr=stderr) | 71 stderr=stderr) |
68 p.fromchild = p.stdout | 72 p.fromchild = p.stdout |
69 p.tochild = p.stdin | 73 p.tochild = p.stdin |
70 p.childerr = p.stderr | 74 p.childerr = p.stderr |