split wormhole_server step 2: new files, fix imports
remove server commands from old src/wormhole/scripts/runner.py
This commit is contained in:
parent
bde4696a8b
commit
190ce2c027
|
@ -5,22 +5,6 @@ from ..timing import DebugTiming
|
|||
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_twisted_sync(args)
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
from wormhole import __version__
|
||||
__version__ # hush pyflakes
|
64
src/wormhole_server/cli_args.py
Normal file
64
src/wormhole_server/cli_args.py
Normal file
|
@ -0,0 +1,64 @@
|
|||
import argparse
|
||||
from textwrap import dedent
|
||||
from wormhole import __version__
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
usage="wormhole-server SUBCOMMAND (subcommand-options)",
|
||||
description=dedent("""
|
||||
Create a Magic Wormhole and communicate through it. Wormholes are created
|
||||
by speaking the same magic CODE in two different places at the same time.
|
||||
Wormholes are secure against anyone who doesn't use the same code."""),
|
||||
)
|
||||
|
||||
parser.add_argument("--version", action="version",
|
||||
version="magic-wormhole "+ __version__)
|
||||
s = parser.add_subparsers(title="subcommands", dest="subcommand")
|
||||
|
||||
|
||||
# CLI: run-server
|
||||
sp_start = s.add_parser("start", description="Start a relay server",
|
||||
usage="wormhole server start [opts] [TWISTD-ARGS..]")
|
||||
sp_start.add_argument("--rendezvous", default="tcp:3000", metavar="tcp:PORT",
|
||||
help="endpoint specification for the rendezvous port")
|
||||
sp_start.add_argument("--transit", default="tcp:3001", metavar="tcp:PORT",
|
||||
help="endpoint specification for the transit-relay port")
|
||||
sp_start.add_argument("--advertise-version", metavar="VERSION",
|
||||
help="version to recommend to clients")
|
||||
sp_start.add_argument("--blur-usage", default=None, type=int,
|
||||
metavar="SECONDS",
|
||||
help="round logged access times to improve privacy")
|
||||
sp_start.add_argument("-n", "--no-daemon", action="store_true")
|
||||
#sp_start.add_argument("twistd_args", nargs="*", default=None,
|
||||
# metavar="[TWISTD-ARGS..]",
|
||||
# help=dedent("""\
|
||||
# Additional arguments to pass to twistd"""),
|
||||
# )
|
||||
sp_start.set_defaults(func="server/start")
|
||||
|
||||
sp_stop = s.add_parser("stop", description="Stop the relay server",
|
||||
usage="wormhole server stop")
|
||||
sp_stop.set_defaults(func="server/stop")
|
||||
|
||||
sp_restart = s.add_parser("restart", description="Restart the relay server",
|
||||
usage="wormhole server restart")
|
||||
sp_restart.add_argument("--rendezvous", default="tcp:3000", metavar="tcp:PORT",
|
||||
help="endpoint specification for the rendezvous port")
|
||||
sp_restart.add_argument("--transit", default="tcp:3001", metavar="tcp:PORT",
|
||||
help="endpoint specification for the transit-relay port")
|
||||
sp_restart.add_argument("--advertise-version", metavar="VERSION",
|
||||
help="version to recommend to clients")
|
||||
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="server/restart")
|
||||
|
||||
sp_show_usage = s.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="usage/usage")
|
||||
|
||||
sp_tail_usage = s.add_parser("tail-usage", description="Follow latest usage",
|
||||
usage="wormhole server tail-usage")
|
||||
sp_tail_usage.set_defaults(func="usage/tail")
|
|
@ -1,5 +1,7 @@
|
|||
from __future__ import print_function
|
||||
import os, time
|
||||
from twisted.python import usage
|
||||
from twisted.scripts import twistd
|
||||
|
||||
class MyPlugin:
|
||||
tapname = "xyznode"
|
||||
|
@ -13,13 +15,10 @@ class MyPlugin:
|
|||
self.args.advertise_version,
|
||||
"relay.sqlite", self.args.blur_usage)
|
||||
|
||||
def start_server(args):
|
||||
from twisted.python import usage
|
||||
from twisted.scripts import twistd
|
||||
|
||||
class MyTwistdConfig(twistd.ServerOptions):
|
||||
subCommands = [("XYZ", None, usage.Options, "node")]
|
||||
|
||||
def start_server(args):
|
||||
c = MyTwistdConfig()
|
||||
#twistd_args = tuple(args.twistd_args) + ("XYZ",)
|
||||
base_args = []
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
from __future__ import print_function
|
||||
import os, time
|
||||
from collections import defaultdict
|
||||
from ..database import get_db
|
||||
from ..errors import UsageError
|
||||
from .database import get_db
|
||||
from wormhole.errors import UsageError
|
||||
|
||||
def abbrev(t):
|
||||
if t is None:
|
||||
|
|
|
@ -6,7 +6,8 @@ class DBError(Exception):
|
|||
pass
|
||||
|
||||
def get_schema(version):
|
||||
schema_bytes = resource_string("wormhole", "db-schemas/v%d.sql" % version)
|
||||
schema_bytes = resource_string("wormhole_server",
|
||||
"db-schemas/v%d.sql" % version)
|
||||
return schema_bytes.decode("utf-8")
|
||||
|
||||
def get_db(dbfile, stderr=sys.stderr):
|
||||
|
|
56
src/wormhole_server/runner.py
Normal file
56
src/wormhole_server/runner.py
Normal file
|
@ -0,0 +1,56 @@
|
|||
from __future__ import print_function
|
||||
import os, sys
|
||||
from .cli_args import parser
|
||||
|
||||
def dispatch(args):
|
||||
if args.func == "server/start":
|
||||
from . import cmd_server
|
||||
return cmd_server.start_server(args)
|
||||
if args.func == "server/stop":
|
||||
from . import cmd_server
|
||||
return cmd_server.stop_server(args)
|
||||
if args.func == "server/restart":
|
||||
from . import cmd_server
|
||||
return cmd_server.restart_server(args)
|
||||
if args.func == "usage/usage":
|
||||
from . import cmd_usage
|
||||
return cmd_usage.show_usage(args)
|
||||
if args.func == "usage/tail":
|
||||
from . import cmd_usage
|
||||
return cmd_usage.tail_usage(args)
|
||||
|
||||
raise ValueError("unknown args.func %s" % args.func)
|
||||
|
||||
def run(args, cwd, stdout, stderr, executable=None):
|
||||
"""This is invoked directly by the 'wormhole-server' entry-point script.
|
||||
It can also invoked by entry() below."""
|
||||
|
||||
args = parser.parse_args()
|
||||
if not getattr(args, "func", None):
|
||||
# So far this only works on py3. py2 exits with a really terse
|
||||
# "error: too few arguments" during parse_args().
|
||||
parser.print_help()
|
||||
sys.exit(0)
|
||||
args.cwd = cwd
|
||||
args.stdout = stdout
|
||||
args.stderr = stderr
|
||||
|
||||
try:
|
||||
rc = dispatch(args)
|
||||
return rc
|
||||
except ImportError as e:
|
||||
print("--- ImportError ---", file=stderr)
|
||||
print(e, file=stderr)
|
||||
print("Please run 'python setup.py build'", file=stderr)
|
||||
raise
|
||||
return 1
|
||||
|
||||
def entry():
|
||||
"""This is used by a setuptools entry_point. When invoked this way,
|
||||
setuptools has already put the installed package on sys.path ."""
|
||||
return run(sys.argv[1:], os.getcwd(), sys.stdout, sys.stderr,
|
||||
executable=sys.argv[0])
|
||||
|
||||
if __name__ == "__main__":
|
||||
args = parser.parse_args()
|
||||
print(args)
|
|
@ -3,9 +3,9 @@ from twisted.python import log
|
|||
from twisted.internet import reactor, endpoints
|
||||
from twisted.application import service
|
||||
from twisted.web import server, static, resource
|
||||
from ..util.endpoint_service import ServerEndpointService
|
||||
from .. import __version__
|
||||
from ..database import get_db
|
||||
from .endpoint_service import ServerEndpointService
|
||||
from wormhole import __version__
|
||||
from .database import get_db
|
||||
from .relay_server import Relay
|
||||
from .transit_server import Transit
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user