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 textwrap import dedent
|
||||||
from .. import public_relay
|
from .. import public_relay
|
||||||
from .. import __version__
|
from .. import __version__
|
||||||
from . import cmd_send, cmd_receive
|
|
||||||
from ..servers import cmd_server, cmd_usage
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
usage="wormhole SUBCOMMAND (subcommand-options)",
|
usage="wormhole SUBCOMMAND (subcommand-options)",
|
||||||
|
@ -51,11 +49,11 @@ sp_start.add_argument("-n", "--no-daemon", action="store_true")
|
||||||
# help=dedent("""\
|
# help=dedent("""\
|
||||||
# Additional arguments to pass to twistd"""),
|
# 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",
|
sp_stop = sp.add_parser("stop", description="Stop the relay server",
|
||||||
usage="wormhole server stop")
|
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",
|
sp_restart = sp.add_parser("restart", description="Restart the relay server",
|
||||||
usage="wormhole server restart")
|
usage="wormhole server restart")
|
||||||
|
@ -69,17 +67,17 @@ sp_restart.add_argument("--blur-usage", default=None, type=int,
|
||||||
metavar="SECONDS",
|
metavar="SECONDS",
|
||||||
help="round logged access times to improve privacy")
|
help="round logged access times to improve privacy")
|
||||||
sp_restart.add_argument("-n", "--no-daemon", action="store_true")
|
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",
|
sp_show_usage = sp.add_parser("show-usage", description="Display usage data",
|
||||||
usage="wormhole server show-usage")
|
usage="wormhole server show-usage")
|
||||||
sp_show_usage.add_argument("-n", default=100, type=int,
|
sp_show_usage.add_argument("-n", default=100, type=int,
|
||||||
help="show last N entries")
|
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",
|
sp_tail_usage = sp.add_parser("tail-usage", description="Follow latest usage",
|
||||||
usage="wormhole server tail-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
|
# CLI: send
|
||||||
p = subparsers.add_parser("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")
|
help="enable no-code anything-goes mode")
|
||||||
p.add_argument("what", nargs="?", default=None, metavar="[FILENAME|DIRNAME]",
|
p.add_argument("what", nargs="?", default=None, metavar="[FILENAME|DIRNAME]",
|
||||||
help="the file/directory to send")
|
help="the file/directory to send")
|
||||||
p.set_defaults(func=cmd_send.send)
|
p.set_defaults(func="send/send")
|
||||||
|
|
||||||
# CLI: receive
|
# CLI: receive
|
||||||
p = subparsers.add_parser("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."""),
|
program will ask for it, using tab-completion."""),
|
||||||
type=type(u""),
|
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 ..errors import TransferError
|
||||||
from .cli_args import parser
|
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):
|
def run(args, cwd, stdout, stderr, executable=None):
|
||||||
"""This is invoked directly by the 'wormhole' entry-point script. It can
|
"""This is invoked directly by the 'wormhole' entry-point script. It can
|
||||||
also invoked by entry() below."""
|
also invoked by entry() below."""
|
||||||
|
@ -17,8 +41,7 @@ def run(args, cwd, stdout, stderr, executable=None):
|
||||||
args.stdout = stdout
|
args.stdout = stdout
|
||||||
args.stderr = stderr
|
args.stderr = stderr
|
||||||
try:
|
try:
|
||||||
#rc = command.func(args, stdout, stderr)
|
rc = dispatch(args)
|
||||||
rc = args.func(args)
|
|
||||||
return rc
|
return rc
|
||||||
except TransferError as e:
|
except TransferError as e:
|
||||||
print(e, file=stderr)
|
print(e, file=stderr)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user