diff --git a/src/wormhole/scripts/cli_args.py b/src/wormhole/scripts/cli_args.py index db4f942..0458430 100644 --- a/src/wormhole/scripts/cli_args.py +++ b/src/wormhole/scripts/cli_args.py @@ -2,8 +2,6 @@ import argparse from textwrap import dedent from .. import public_relay from .. import __version__ -from . import cmd_send, cmd_receive -from ..servers import cmd_server, cmd_usage parser = argparse.ArgumentParser( usage="wormhole SUBCOMMAND (subcommand-options)", @@ -51,11 +49,11 @@ sp_start.add_argument("-n", "--no-daemon", action="store_true") # help=dedent("""\ # Additional arguments to pass to twistd"""), # ) -sp_start.set_defaults(func=cmd_server.start_server) +sp_start.set_defaults(func="server/start") sp_stop = sp.add_parser("stop", description="Stop the relay server", usage="wormhole server stop") -sp_stop.set_defaults(func=cmd_server.stop_server) +sp_stop.set_defaults(func="server/stop") sp_restart = sp.add_parser("restart", description="Restart the relay server", usage="wormhole server restart") @@ -69,17 +67,17 @@ sp_restart.add_argument("--blur-usage", default=None, type=int, metavar="SECONDS", help="round logged access times to improve privacy") sp_restart.add_argument("-n", "--no-daemon", action="store_true") -sp_restart.set_defaults(func=cmd_server.restart_server) +sp_restart.set_defaults(func="server/restart") sp_show_usage = sp.add_parser("show-usage", description="Display usage data", usage="wormhole server show-usage") sp_show_usage.add_argument("-n", default=100, type=int, help="show last N entries") -sp_show_usage.set_defaults(func=cmd_usage.show_usage) +sp_show_usage.set_defaults(func="usage/usage") sp_tail_usage = sp.add_parser("tail-usage", description="Follow latest usage", usage="wormhole server tail-usage") -sp_tail_usage.set_defaults(func=cmd_usage.tail_usage) +sp_tail_usage.set_defaults(func="usage/tail") # CLI: send p = subparsers.add_parser("send", @@ -93,7 +91,7 @@ p.add_argument("-0", dest="zeromode", action="store_true", help="enable no-code anything-goes mode") p.add_argument("what", nargs="?", default=None, metavar="[FILENAME|DIRNAME]", help="the file/directory to send") -p.set_defaults(func=cmd_send.send) +p.set_defaults(func="send/send") # CLI: receive p = subparsers.add_parser("receive", @@ -116,4 +114,4 @@ p.add_argument("code", nargs="?", default=None, metavar="[CODE]", program will ask for it, using tab-completion."""), type=type(u""), ) -p.set_defaults(func=cmd_receive.receive) +p.set_defaults(func="receive/receive") diff --git a/src/wormhole/scripts/runner.py b/src/wormhole/scripts/runner.py index bd69a2f..f131326 100644 --- a/src/wormhole/scripts/runner.py +++ b/src/wormhole/scripts/runner.py @@ -3,6 +3,30 @@ import os, sys from ..errors import TransferError from .cli_args import parser +def dispatch(args): + if args.func == "server/start": + from ..servers import cmd_server + return cmd_server.start_server(args) + if args.func == "server/stop": + from ..servers import cmd_server + return cmd_server.stop_server(args) + if args.func == "server/restart": + from ..servers import cmd_server + return cmd_server.restart_server(args) + if args.func == "usage/usage": + from ..servers import cmd_usage + return cmd_usage.show_usage(args) + if args.func == "usage/tail": + from ..servers import cmd_usage + return cmd_usage.tail_usage(args) + if args.func == "send/send": + from . import cmd_send + return cmd_send.send(args) + if args.func == "receive/receive": + from . import cmd_receive + return cmd_receive.receive(args) + raise ValueError("unknown args.func %s" % args.func) + def run(args, cwd, stdout, stderr, executable=None): """This is invoked directly by the 'wormhole' entry-point script. It can also invoked by entry() below.""" @@ -17,8 +41,7 @@ def run(args, cwd, stdout, stderr, executable=None): args.stdout = stdout args.stderr = stderr try: - #rc = command.func(args, stdout, stderr) - rc = args.func(args) + rc = dispatch(args) return rc except TransferError as e: print(e, file=stderr)