From 8e2506675355ddafcbaa9c999cdb8f636384a1e4 Mon Sep 17 00:00:00 2001
From: Brian Warner <warner@lothar.com>
Date: Mon, 1 Jun 2009 14:01:37 -0700
Subject: [PATCH] misc/run-with-pythonpath.py: exec() the child (on unix), to
 remove the intermediate process

---
 misc/run-with-pythonpath.py | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/misc/run-with-pythonpath.py b/misc/run-with-pythonpath.py
index e23a15de..d402f7c5 100644
--- a/misc/run-with-pythonpath.py
+++ b/misc/run-with-pythonpath.py
@@ -34,6 +34,17 @@ if oldpp == [""]:
 newpp = os.pathsep.join(oldpp + [supportlib,])
 os.environ['PYTHONPATH'] = newpp
 
-command = sys.argv[1:]
-rc = subprocess.call(command)
-sys.exit(rc)
+if sys.platform == "win32":
+    command = sys.argv[1:]
+    rc = subprocess.call(command)
+    sys.exit(rc)
+else:
+    from twisted.python.procutils import which
+    cmd = sys.argv[1]
+    if cmd and cmd[0] not in "/~.":
+        cmds = which(cmd)
+        if not cmds:
+            print >>sys.stderr, "'%s' not found on PATH" % (cmd,)
+            sys.exit(-1)
+        cmd = cmds[0]
+    os.execve(cmd, sys.argv[1:], os.environ)
-- 
2.45.2