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.core.cdx_api_handler import create_cdx_server_app
|
||||||
from pywb.webapp.pywb_init 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,
|
application = init_app(create_cdx_server_app,
|
||||||
load_yaml=True)
|
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 os
|
||||||
import logging
|
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):
|
def wayback(args=None):
|
||||||
parser = ArgumentParser('pywb Wayback Web Archive Replay')
|
def load():
|
||||||
parser.add_argument('-p', '--port', type=int, default=8080)
|
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('-t', '--threads', type=int, default=4)
|
||||||
parser.add_argument('-a', '--autoindex', action='store_true')
|
parser.add_argument('-a', '--autoindex', action='store_true')
|
||||||
|
|
||||||
@ -18,7 +54,8 @@ def wayback(args=None):
|
|||||||
os.chdir(r.directory)
|
os.chdir(r.directory)
|
||||||
|
|
||||||
# Load App
|
# Load App
|
||||||
from pywb.apps.wayback import application
|
#from pywb.apps.wayback import application
|
||||||
|
application = appload().application
|
||||||
|
|
||||||
if r.autoindex:
|
if r.autoindex:
|
||||||
from pywb.manager.manager import CollectionsManager
|
from pywb.manager.manager import CollectionsManager
|
||||||
@ -38,11 +75,10 @@ def wayback(args=None):
|
|||||||
serve(application, port=r.port, threads=r.threads)
|
serve(application, port=r.port, threads=r.threads)
|
||||||
except ImportError: # pragma: no cover
|
except ImportError: # pragma: no cover
|
||||||
# Shouldn't ever happen as installing waitress, but just in case..
|
# Shouldn't ever happen as installing waitress, but just in case..
|
||||||
from pywb.framework.wsgi_wrappers import start_wsgi_server
|
from pywb.framework.wsgi_wrappers import start_wsgi_ref_server
|
||||||
start_wsgi_server(application, 'Wayback', default_port=r.port)
|
start_wsgi_ref_server(application, desc, port=r.port)
|
||||||
|
|
||||||
|
|
||||||
#=================================================================
|
#=================================================================
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
wayback()
|
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
|
from pywb.webapp.live_rewrite_handler import create_live_rewriter_app
|
||||||
|
|
||||||
@ -27,11 +27,3 @@ def create_app():
|
|||||||
|
|
||||||
|
|
||||||
application = 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 init_app
|
||||||
from pywb.framework.wsgi_wrappers import start_wsgi_server
|
|
||||||
|
|
||||||
from pywb.utils.wbexception import AccessException
|
from pywb.utils.wbexception import AccessException
|
||||||
|
|
||||||
|
@ -44,9 +44,6 @@ def rel_request_uri(environ, include_query=1):
|
|||||||
class WSGIApp(object):
|
class WSGIApp(object):
|
||||||
def __init__(self, wb_router):
|
def __init__(self, wb_router):
|
||||||
self.wb_router = 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
|
# Top-level wsgi application
|
||||||
def __call__(self, env, start_response):
|
def __call__(self, env, start_response):
|
||||||
@ -192,20 +189,15 @@ 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
|
from wsgiref.simple_server import make_server
|
||||||
|
|
||||||
# disable is_hop_by_hop restrictions
|
# disable is_hop_by_hop restrictions
|
||||||
import wsgiref.handlers
|
import wsgiref.handlers
|
||||||
wsgiref.handlers.is_hop_by_hop = lambda x: False
|
wsgiref.handlers.is_hop_by_hop = lambda x: False
|
||||||
|
|
||||||
port = the_app.port
|
|
||||||
|
|
||||||
if not port:
|
if not port:
|
||||||
if default_port:
|
port = DEFAULT_PORT
|
||||||
port = default_port
|
|
||||||
else:
|
|
||||||
port = DEFAULT_PORT
|
|
||||||
|
|
||||||
logging.info('Starting %s on port %s', name, 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)
|
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 = []
|
routes = []
|
||||||
|
|
||||||
|
4
setup.py
4
setup.py
@ -90,9 +90,9 @@ setup(
|
|||||||
entry_points="""
|
entry_points="""
|
||||||
[console_scripts]
|
[console_scripts]
|
||||||
wayback = pywb.apps.cli:wayback
|
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
|
cdx-indexer = pywb.warc.cdxindexer:main
|
||||||
live-rewrite-server = pywb.apps.live_rewrite_server:main
|
|
||||||
proxy-cert-auth = pywb.framework.certauth:main
|
proxy-cert-auth = pywb.framework.certauth:main
|
||||||
wb-manager = pywb.manager.manager:main_wrap_exc
|
wb-manager = pywb.manager.manager:main_wrap_exc
|
||||||
""",
|
""",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user