runner.py: new approach to dispatching
This commit is contained in:
parent
3b447df0f4
commit
d36d1cb063
|
@ -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")
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user