--- old-tahoe/src/allmydata/scripts/runner.py 2010-01-11 05:17:12.270000000 +0000 +++ new-tahoe/src/allmydata/scripts/runner.py 2010-01-11 05:17:12.321000000 +0000 @@ -10,24 +10,40 @@ 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,