Source code for egaia.egaia_serve

import os
import socket
import SimpleHTTPServer
import SocketServer

import utils
from egaia_config import getConfig

# Allow stopping and re-starting the server without socket re-use error
# https://stackoverflow.com/a/18858817
[docs]class MyTCPServer(SocketServer.TCPServer):
[docs] def server_bind(self): self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.socket.bind(self.server_address)
[docs]def serve(port): Handler = SimpleHTTPServer.SimpleHTTPRequestHandler httpd = MyTCPServer(("", port), Handler) pub = os.path.expanduser(getConfig('archive', 'pub_path')) os.chdir(pub) print "serving at port", port print 'access from http://localhost:%s' % port httpd.serve_forever()
def _cli(args): """egaia serve Run a simple web server for viewing generated html files locally. Usage: egaia serve --help egaia serve [ --port=PORT ] [ --browser=BROWSER ] """ PORT = 8000 if args['--port']: PORT = int(args['--port']) if args['--browser']: utils.run([args['--browser'], 'http://localhost:%s/' % PORT]) serve(PORT)