From: Brian Warner Date: Wed, 11 Jul 2007 02:13:55 +0000 (-0700) Subject: startstop_node.py: refactor find_twistd() out so it is only run when you need to... X-Git-Url: https://git.rkrishnan.org/components/com_hotproperty/%22doc.html/architecture.txt?a=commitdiff_plain;h=d8a878da863ce33cf1846e0a8957a45f4aa0eeb7;p=tahoe-lafs%2Ftahoe-lafs.git startstop_node.py: refactor find_twistd() out so it is only run when you need to start a node --- diff --git a/src/allmydata/scripts/startstop_node.py b/src/allmydata/scripts/startstop_node.py index 5f73cd64..f2197853 100644 --- a/src/allmydata/scripts/startstop_node.py +++ b/src/allmydata/scripts/startstop_node.py @@ -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