startstop_node.py: refactor find_twistd() out so it is only run when you need to...
authorBrian Warner <warner@lothar.com>
Wed, 11 Jul 2007 02:13:55 +0000 (19:13 -0700)
committerBrian Warner <warner@lothar.com>
Wed, 11 Jul 2007 02:13:55 +0000 (19:13 -0700)
src/allmydata/scripts/startstop_node.py

index 5f73cd645cc4c21e74362ce99e6544301f1bbb98..f2197853a469504e8ead8165849302506d9e6dbb 100644 (file)
@@ -30,40 +30,32 @@ def testtwistd(loc):
         return subprocess.call(["python", loc,], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
     except:
         return -1
-    
-twistd = None
-if not twistd:
+
+def find_twistd():
     for maybetwistd in which("twistd"):
         ret = testtwistd(maybetwistd)
         if ret == 0:
-            twistd = maybetwistd
-            break
+            return maybetwistd
 
-if not twistd:
     for maybetwistd in which("twistd.py"):
         ret = testtwistd(maybetwistd)
         if ret == 0:
-            twistd = maybetwistd
-            break
+            return maybetwistd
 
-if not twistd:
     maybetwistd = os.path.join(sys.prefix, 'Scripts', 'twistd')
     ret = testtwistd(maybetwistd)
     if ret == 0:
-        twistd = maybetwistd
+        return maybetwistd
 
-if not twistd:
     maybetwistd = os.path.join(sys.prefix, 'Scripts', 'twistd.py')
     ret = testtwistd(maybetwistd)
     if ret == 0:
-        twistd = maybetwistd
+        return maybetwistd
 
-if not twistd:
     print "Can't find twistd (it comes with Twisted).  Aborting."
     sys.exit(1)
 
 
-
 def do_start(basedir, config, out=sys.stdout, err=sys.stderr):
     print >>out, "STARTING", basedir
     if os.path.exists(os.path.join(basedir, "client.tac")):
@@ -77,6 +69,7 @@ def do_start(basedir, config, out=sys.stdout, err=sys.stderr):
         if not os.path.isdir(basedir):
             print >>err, " in fact, it doesn't look like a directory at all!"
         sys.exit(1)
+    twistd = find_twistd()
     rc = subprocess.call(["python", twistd, "-y", tac,], cwd=basedir)
     if rc == 0:
         print >>out, "%s node probably started" % type