equal
deleted
inserted
replaced
25 stdout = sys.stdout |
25 stdout = sys.stdout |
26 stderr = sys.stderr |
26 stderr = sys.stderr |
27 stringio = cStringIO.StringIO |
27 stringio = cStringIO.StringIO |
28 bprint = print |
28 bprint = print |
29 |
29 |
30 def connectpipe(path=None): |
30 def connectpipe(path=None, extraargs=()): |
31 cmdline = [b'hg', b'serve', b'--cmdserver', b'pipe'] |
31 cmdline = [b'hg', b'serve', b'--cmdserver', b'pipe'] |
32 if path: |
32 if path: |
33 cmdline += [b'-R', path] |
33 cmdline += [b'-R', path] |
|
34 cmdline.extend(extraargs) |
34 |
35 |
35 server = subprocess.Popen(cmdline, stdin=subprocess.PIPE, |
36 server = subprocess.Popen(cmdline, stdin=subprocess.PIPE, |
36 stdout=subprocess.PIPE) |
37 stdout=subprocess.PIPE) |
37 |
38 |
38 return server |
39 return server |
112 error.flush() |
113 error.flush() |
113 elif ch == b'I': |
114 elif ch == b'I': |
114 writeblock(server, input.read(data)) |
115 writeblock(server, input.read(data)) |
115 elif ch == b'L': |
116 elif ch == b'L': |
116 writeblock(server, input.readline(data)) |
117 writeblock(server, input.readline(data)) |
|
118 elif ch == b'm': |
|
119 bprint(b"message: %r" % data) |
117 elif ch == b'r': |
120 elif ch == b'r': |
118 ret, = struct.unpack('>i', data) |
121 ret, = struct.unpack('>i', data) |
119 if ret != 0: |
122 if ret != 0: |
120 bprint(b' [%d]' % ret) |
123 bprint(b' [%d]' % ret) |
121 return ret |
124 return ret |
130 try: |
133 try: |
131 return func(server) |
134 return func(server) |
132 finally: |
135 finally: |
133 server.stdin.close() |
136 server.stdin.close() |
134 server.wait() |
137 server.wait() |
|
138 |
|
139 def checkwith(connect=connectpipe, **kwargs): |
|
140 def wrap(func): |
|
141 return check(func, lambda: connect(**kwargs)) |
|
142 return wrap |