diff --git a/pelican/tools/templates/fabfile.py.in b/pelican/tools/templates/fabfile.py.in index 73c64ac8..fb56ae85 100644 --- a/pelican/tools/templates/fabfile.py.in +++ b/pelican/tools/templates/fabfile.py.in @@ -1,6 +1,9 @@ from fabric.api import * import fabric.contrib.project as project import os +import sys +import SimpleHTTPServer +import SocketServer # Local path configuration (can be absolute or relative to fabfile) env.deploy_path = 'output' @@ -32,7 +35,16 @@ def regenerate(): local('pelican -r -s pelicanconf.py') def serve(): - local('cd {deploy_path} && python -m SimpleHTTPServer'.format(**env)) + os.chdir(env.deploy_path) + + PORT = 8000 + class AddressReuseTCPServer(SocketServer.TCPServer): + allow_reuse_address = True + + server = AddressReuseTCPServer(('', PORT), SimpleHTTPServer.SimpleHTTPRequestHandler) + + sys.stderr.write('Serving on port {0} ...\n'.format(PORT)) + server.serve_forever() def reserve(): build()