diff options
Diffstat (limited to 'contrib/debugcmdserver.py')
-rwxr-xr-x | contrib/debugcmdserver.py | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/contrib/debugcmdserver.py b/contrib/debugcmdserver.py deleted file mode 100755 index 859ee9a..0000000 --- a/contrib/debugcmdserver.py +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env python -# -# Dumps output generated by Mercurial's command server in a formatted style to a -# given file or stderr if '-' is specified. Output is also written in its raw -# format to stdout. -# -# $ ./hg serve --cmds pipe | ./contrib/debugcmdserver.py - -# o, 52 -> 'capabilities: getencoding runcommand\nencoding: UTF-8' - -import sys, struct - -if len(sys.argv) != 2: - print 'usage: debugcmdserver.py FILE' - sys.exit(1) - -outputfmt = '>cI' -outputfmtsize = struct.calcsize(outputfmt) - -if sys.argv[1] == '-': - log = sys.stderr -else: - log = open(sys.argv[1], 'a') - -def read(size): - data = sys.stdin.read(size) - if not data: - raise EOFError - sys.stdout.write(data) - sys.stdout.flush() - return data - -try: - while True: - header = read(outputfmtsize) - channel, length = struct.unpack(outputfmt, header) - log.write('%s, %-4d' % (channel, length)) - if channel in 'IL': - log.write(' -> waiting for input\n') - else: - data = read(length) - log.write(' -> %r\n' % data) - log.flush() -except EOFError: - pass -finally: - if log != sys.stderr: - log.close() |