mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-15 00:03:28 +01:00
cli: change cdx-server and live-rewrite-server to go through shared cli
entry point
This commit is contained in:
parent
ae363ad368
commit
df76bc3500
@ -1,4 +1,4 @@
|
||||
from pywb.framework.wsgi_wrappers import init_app, start_wsgi_server
|
||||
from pywb.framework.wsgi_wrappers import init_app
|
||||
|
||||
#from pywb.core.cdx_api_handler import create_cdx_server_app
|
||||
from pywb.webapp.pywb_init import create_cdx_server_app
|
||||
@ -9,10 +9,3 @@ from pywb.webapp.pywb_init import create_cdx_server_app
|
||||
|
||||
application = init_app(create_cdx_server_app,
|
||||
load_yaml=True)
|
||||
|
||||
|
||||
def main(): # pragma: no cover
|
||||
start_wsgi_server(application, 'CDX Server', default_port=8090)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
@ -1,12 +1,48 @@
|
||||
import os
|
||||
import logging
|
||||
from argparse import ArgumentParser, RawTextHelpFormatter
|
||||
from argparse import ArgumentParser
|
||||
|
||||
|
||||
#=================================================================
|
||||
def cdx_server(args=None): #pragma: no cover
|
||||
def load():
|
||||
import pywb.apps.cdx_server as mod
|
||||
return mod
|
||||
|
||||
cli(appload=load,
|
||||
args=args,
|
||||
default_port=8090,
|
||||
desc='pywb CDX Index Server')
|
||||
|
||||
|
||||
#=================================================================
|
||||
def live_rewrite_server(args=None): #pragma: no cover
|
||||
def load():
|
||||
import pywb.apps.live_rewrite_server as mod
|
||||
return mod
|
||||
|
||||
cli(appload=load,
|
||||
args=args,
|
||||
default_port=8090,
|
||||
desc='pywb Live Rewrite Proxy Server')
|
||||
|
||||
|
||||
#=================================================================
|
||||
def wayback(args=None):
|
||||
parser = ArgumentParser('pywb Wayback Web Archive Replay')
|
||||
parser.add_argument('-p', '--port', type=int, default=8080)
|
||||
def load():
|
||||
import pywb.apps.wayback as mod
|
||||
return mod
|
||||
|
||||
cli(appload=load,
|
||||
args=args,
|
||||
default_port=8080,
|
||||
desc='pywb Wayback Web Archive Replay')
|
||||
|
||||
|
||||
#=================================================================
|
||||
def cli(appload, args=None, default_port=8080, desc=''):
|
||||
parser = ArgumentParser(desc)
|
||||
parser.add_argument('-p', '--port', type=int, default=default_port)
|
||||
parser.add_argument('-t', '--threads', type=int, default=4)
|
||||
parser.add_argument('-a', '--autoindex', action='store_true')
|
||||
|
||||
@ -18,7 +54,8 @@ def wayback(args=None):
|
||||
os.chdir(r.directory)
|
||||
|
||||
# Load App
|
||||
from pywb.apps.wayback import application
|
||||
#from pywb.apps.wayback import application
|
||||
application = appload().application
|
||||
|
||||
if r.autoindex:
|
||||
from pywb.manager.manager import CollectionsManager
|
||||
@ -38,11 +75,10 @@ def wayback(args=None):
|
||||
serve(application, port=r.port, threads=r.threads)
|
||||
except ImportError: # pragma: no cover
|
||||
# Shouldn't ever happen as installing waitress, but just in case..
|
||||
from pywb.framework.wsgi_wrappers import start_wsgi_server
|
||||
start_wsgi_server(application, 'Wayback', default_port=r.port)
|
||||
from pywb.framework.wsgi_wrappers import start_wsgi_ref_server
|
||||
start_wsgi_ref_server(application, desc, port=r.port)
|
||||
|
||||
|
||||
#=================================================================
|
||||
if __name__ == "__main__":
|
||||
wayback()
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
from pywb.framework.wsgi_wrappers import init_app, start_wsgi_server
|
||||
from pywb.framework.wsgi_wrappers import init_app
|
||||
|
||||
from pywb.webapp.live_rewrite_handler import create_live_rewriter_app
|
||||
|
||||
@ -27,11 +27,3 @@ def create_app():
|
||||
|
||||
|
||||
application = create_app()
|
||||
|
||||
|
||||
def main(): # pragma: no cover
|
||||
start_wsgi_server(application, 'Live Rewriter App', default_port=8090)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
@ -1,5 +1,4 @@
|
||||
from pywb.framework.wsgi_wrappers import init_app
|
||||
from pywb.framework.wsgi_wrappers import start_wsgi_server
|
||||
|
||||
from pywb.utils.wbexception import AccessException
|
||||
|
||||
|
@ -44,9 +44,6 @@ def rel_request_uri(environ, include_query=1):
|
||||
class WSGIApp(object):
|
||||
def __init__(self, wb_router):
|
||||
self.wb_router = wb_router
|
||||
self.port = DEFAULT_PORT
|
||||
if hasattr(wb_router, 'port'):
|
||||
self.port = wb_router.port
|
||||
|
||||
# Top-level wsgi application
|
||||
def __call__(self, env, start_response):
|
||||
@ -192,19 +189,14 @@ def init_app(init_func, load_yaml=True, config_file=None, config={}):
|
||||
|
||||
|
||||
#=================================================================
|
||||
def start_wsgi_server(the_app, name, default_port=None): # pragma: no cover
|
||||
def start_wsgi_ref_server(the_app, name, port): # pragma: no cover
|
||||
from wsgiref.simple_server import make_server
|
||||
|
||||
# disable is_hop_by_hop restrictions
|
||||
import wsgiref.handlers
|
||||
wsgiref.handlers.is_hop_by_hop = lambda x: False
|
||||
|
||||
port = the_app.port
|
||||
|
||||
if not port:
|
||||
if default_port:
|
||||
port = default_port
|
||||
else:
|
||||
port = DEFAULT_PORT
|
||||
|
||||
logging.info('Starting %s on port %s', name, port)
|
||||
|
@ -108,7 +108,12 @@ def create_cdx_server_app(passed_config):
|
||||
|
||||
config = DictChain(passed_config, defaults)
|
||||
|
||||
collections = config.get('collections')
|
||||
collections = config.get('collections', {})
|
||||
|
||||
static_routes = {}
|
||||
# collections based on file system
|
||||
dir_loader = DirectoryCollsLoader(config, static_routes)
|
||||
collections.update(dir_loader())
|
||||
|
||||
routes = []
|
||||
|
||||
|
4
setup.py
4
setup.py
@ -90,9 +90,9 @@ setup(
|
||||
entry_points="""
|
||||
[console_scripts]
|
||||
wayback = pywb.apps.cli:wayback
|
||||
cdx-server = pywb.apps.cdx_server:main
|
||||
cdx-server = pywb.apps.cli:cdx_server
|
||||
live-rewrite-server = pywb.apps.cli:live_rewrite_server
|
||||
cdx-indexer = pywb.warc.cdxindexer:main
|
||||
live-rewrite-server = pywb.apps.live_rewrite_server:main
|
||||
proxy-cert-auth = pywb.framework.certauth:main
|
||||
wb-manager = pywb.manager.manager:main_wrap_exc
|
||||
""",
|
||||
|
Loading…
x
Reference in New Issue
Block a user