Steve Losh avatar Steve Losh committed bb866e7

OMG it works

Comments (0)

Files changed (6)

+#!/usr/bin/env zsh
+
+DIR="`pwd`"
+CMD=""
+
+for ARG in $*
+do
+    CMD="$CMD\n$ARG"
+done
+
+PAYLOAD="$DIR\n$CMD\nHGDAEMONARGSDONE\n"
+
+echo "$PAYLOAD" | netcat localhost 8029
+
+exit
+from diesel import Application, Service, until, send
+
+import os
+import sys
+from cStringIO import StringIO
+
+libdir = '@LIBDIR@'
+
+if libdir != '@' 'LIBDIR' '@':
+    if not os.path.isabs(libdir):
+        libdir = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+                              libdir)
+        libdir = os.path.abspath(libdir)
+    sys.path.insert(0, libdir)
+
+# enable importing on demand to reduce startup time
+try:
+    from mercurial import demandimport; demandimport.enable()
+except ImportError:
+    import sys
+    sys.stderr.write("abort: couldn't find mercurial libraries in [%s]\n" %
+                     ' '.join(sys.path))
+    sys.stderr.write("(check your install and PYTHONPATH)\n")
+    sys.exit(-1)
+
+import mercurial.util
+import mercurial.dispatch
+
+for fp in (sys.stdin, sys.stdout, sys.stderr):
+    mercurial.util.set_binary(fp)
+
+
+STDOUT = sys.stdout
+
+def _run(cwd, cmd):
+    sys.stdout = out = StringIO()
+    mercurial.dispatch.dispatch(['--cwd', cwd, '--color', 'always'] + cmd)
+    sys.stdout = sys.__stdout__
+    return out.getvalue()
+
+def handle_command(remote_addr):
+    cwd = until('\n').strip()
+    cmd = until('HGDAEMONARGSDONE\n').strip().splitlines()[:-1]
+
+    send(_run(cwd, cmd))
+
+app = Application()
+app.add_service(Service(handle_command, port=8029))
+app.run()
+
+#!/usr/bin/env zsh
+
+echo "DAEMON"
+
+for i in {1..100}
+do
+    ./hd status > /dev/null
+done
+
+exit
+#!/usr/bin/env zsh
+
+echo "NORMAL"
+for i in {1..100}
+do
+    hg status > /dev/null
+done
+
+exit
+-e git://github.com/jamwt/diesel.git#egg=diesel
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.