summaryrefslogtreecommitdiff
path: root/contrib/debugcmdserver.py
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/debugcmdserver.py')
-rwxr-xr-xcontrib/debugcmdserver.py47
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()