From: Zooko O'Whielacronx Date: Tue, 26 Jan 2010 04:45:59 +0000 (-0800) Subject: cli: merge the better version of David-Sarah's split-usage-and-help patch with the... X-Git-Url: https://git.rkrishnan.org/architecture.txt?a=commitdiff_plain;h=a1444d9367554df7965705536ab3ccc0481ed9c0;p=tahoe-lafs%2Ftahoe-lafs.git cli: merge the better version of David-Sarah's split-usage-and-help patch with the earlier version that I mistakenly committed --- diff --git a/src/allmydata/scripts/create_node.py b/src/allmydata/scripts/create_node.py index 7e49ba43..4e23ac07 100644 --- a/src/allmydata/scripts/create_node.py +++ b/src/allmydata/scripts/create_node.py @@ -164,9 +164,9 @@ def create_introducer(basedir, config, out=sys.stdout, err=sys.stderr): subCommands = [ - ["create-client", None, CreateClientOptions, "Create a client node."], - ["create-introducer", None, CreateIntroducerOptions, "Create a introducer node."], - + ["create-node", None, CreateNodeOptions, "Create a node that acts as a client, server or both."], + ["create-client", None, CreateClientOptions, "Create a client node (with storage initially disabled)."], + ["create-introducer", None, CreateIntroducerOptions, "Create an introducer node."], ] dispatch = { diff --git a/src/allmydata/scripts/runner.py b/src/allmydata/scripts/runner.py index 235cc2a0..1ac8984e 100644 --- a/src/allmydata/scripts/runner.py +++ b/src/allmydata/scripts/runner.py @@ -10,24 +10,40 @@ pkg_resources.require('allmydata-tahoe') from allmydata.scripts.common import BaseOptions import debug, create_node, startstop_node, cli, keygen, stats_gatherer -_general_commands = ( create_node.subCommands - + keygen.subCommands - + stats_gatherer.subCommands - + debug.subCommands - + cli.subCommands - ) +def group(s): + return [["\n" + s, None, None, None]] + +_commandUsage = ( group("Administration") + + create_node.subCommands + + keygen.subCommands + + stats_gatherer.subCommands + + group("Controlling a node") + + startstop_node.subCommands + + group("Debugging") + + debug.subCommands + + group("Using the filesystem") + + cli.subCommands + ) + +_subCommands = filter(lambda (a, b, c, d): not a.startswith("\n"), _commandUsage) +_synopsis = "Usage: tahoe [command options]" class Options(BaseOptions, usage.Options): - synopsis = "Usage: tahoe [command options]" + synopsis = _synopsis + subCommands = _subCommands - subCommands = [] - subCommands += _general_commands - subCommands += startstop_node.subCommands + def getUsage(self, **kwargs): + t = _Usage().getUsage(**kwargs) + return t + "\nPlease run 'tahoe --help' for more details on each command.\n" def postOptions(self): if not hasattr(self, 'subOptions'): raise usage.UsageError("must specify a command") +class _Usage(BaseOptions, usage.Options): + synopsis = _synopsis + subCommands = _commandUsage + def runner(argv, run_by_human=True, stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr,