commit d91cf28d17c31ba57d94fe8a9acaecff287473a0 Merge: f5f6773 489bc2b Author: Nick Mathewson nickm@torproject.org Date: Thu Oct 9 10:49:02 2014 -0400
Merge remote-tracking branch 'houqp/miss_network_error'
lib/chutney/TorNet.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-)
diff --cc lib/chutney/TorNet.py index f18503a,042610c..7e64035 --- a/lib/chutney/TorNet.py +++ b/lib/chutney/TorNet.py @@@ -859,15 -712,18 +859,20 @@@ def ConfigureNodes(nodelist) if n._env['bridgeauthority']: network._dfltEnv['hasbridgeauth'] = True
+ def usage(network): return "\n".join(["Usage: chutney {command} {networkfile}", - "Known commands are: %s" % ( - " ".join(x for x in dir(network) if not x.startswith("_")))]) + "Known commands are: %s" % ( + " ".join(x for x in dir(network) if not x.startswith("_")))]) +
+ def exit_on_error(err_msg): + print "Error: {0}\n".format(err_msg) + print usage(_THE_NETWORK) + sys.exit(1) + def runConfigFile(verb, f): - _GLOBALS = dict(_BASE_ENVIRON= _BASE_ENVIRON, + _GLOBALS = dict(_BASE_ENVIRON=_BASE_ENVIRON, Node=Node, ConfigureNodes=ConfigureNodes, _THE_NETWORK=_THE_NETWORK) @@@ -880,27 -736,24 +885,30 @@@ print "Error: I don't know how to %s." % verb return
- return getattr(network,verb)() + return getattr(network, verb)() +
+ def parseArgs(): + if len(sys.argv) < 3: + exit_on_error("Not enough arguments given.") + if not os.path.isfile(sys.argv[2]): + exit_on_error("Cannot find networkfile: {0}.".format(sys.argv[2])) + return {'network_cfg': sys.argv[2], 'action': sys.argv[1]} + def main(): global _BASE_ENVIRON + global _TORRC_OPTIONS global _THE_NETWORK _BASE_ENVIRON = TorEnviron(chutney.Templating.Environ(**DEFAULTS)) + # _TORRC_OPTIONS gets initialised on demand as a map of + # "/path/to/tor" => ["SupportedOption1", "SupportedOption2", ...] + # Or it can be pre-populated as a static whitelist of options + _TORRC_OPTIONS = dict() _THE_NETWORK = Network(_BASE_ENVIRON)
- if len(sys.argv) < 3: - print usage(_THE_NETWORK) - print "Error: Not enough arguments given." - sys.exit(1) - - f = open(sys.argv[2]) - result = runConfigFile(sys.argv[1], f) + args = parseArgs() + f = open(args['network_cfg']) + result = runConfigFile(args['action'], f) if result is False: return -1 return 0
tor-commits@lists.torproject.org