1
0
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:
Ilya Kreymer 2015-03-23 09:08:09 -07:00
parent ae363ad368
commit df76bc3500
7 changed files with 55 additions and 38 deletions

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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

View File

@ -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)

View File

@ -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 = []

View File

@ -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
""",