equal
deleted
inserted
replaced
1 # A minimal client for Mercurial's command server |
1 # A minimal client for Mercurial's command server |
2 |
2 |
3 from __future__ import absolute_import, print_function |
3 from __future__ import absolute_import, print_function |
4 import cStringIO |
|
5 import os |
4 import os |
6 import signal |
5 import signal |
7 import socket |
6 import socket |
8 import struct |
7 import struct |
9 import subprocess |
8 import subprocess |
10 import sys |
9 import sys |
11 import time |
10 import time |
|
11 |
|
12 try: |
|
13 import cStringIO as io |
|
14 stringio = io.StringIO |
|
15 except ImportError: |
|
16 import io |
|
17 stringio = io.StringIO |
12 |
18 |
13 def connectpipe(path=None): |
19 def connectpipe(path=None): |
14 cmdline = ['hg', 'serve', '--cmdserver', 'pipe'] |
20 cmdline = ['hg', 'serve', '--cmdserver', 'pipe'] |
15 if path: |
21 if path: |
16 cmdline += ['-R', path] |
22 cmdline += ['-R', path] |
81 sys.stdout.flush() |
87 sys.stdout.flush() |
82 server.stdin.write('runcommand\n') |
88 server.stdin.write('runcommand\n') |
83 writeblock(server, '\0'.join(args)) |
89 writeblock(server, '\0'.join(args)) |
84 |
90 |
85 if not input: |
91 if not input: |
86 input = cStringIO.StringIO() |
92 input = stringio() |
87 |
93 |
88 while True: |
94 while True: |
89 ch, data = readchannel(server) |
95 ch, data = readchannel(server) |
90 if ch == 'o': |
96 if ch == 'o': |
91 output.write(outfilter(data)) |
97 output.write(outfilter(data)) |