Skip to content
Snippets Groups Projects
webserver.py 909 B
Newer Older
  • Learn to ignore specific revisions
  • matrix.org's avatar
    matrix.org committed
    import argparse
    import BaseHTTPServer
    import os
    import SimpleHTTPServer
    
    from daemonize import Daemonize
    
    
    def setup():
        parser = argparse.ArgumentParser()
        parser.add_argument("directory")
        parser.add_argument("-p", "--port", dest="port", type=int, default=8080)
        parser.add_argument('-P', "--pid-file", dest="pid", default="web.pid")
        args = parser.parse_args()
    
        # Get absolute path to directory to serve, as daemonize changes to '/'
        os.chdir(args.directory)
        dr = os.getcwd()
    
        httpd = BaseHTTPServer.HTTPServer(
            ('', args.port),
            SimpleHTTPServer.SimpleHTTPRequestHandler
        )
    
        def run():
            os.chdir(dr)
            httpd.serve_forever()
    
        daemon = Daemonize(
                app="synapse-webclient",
                pid=args.pid,
                action=run,
                auto_close_fds=False,
            )
    
        daemon.start()
    
    if __name__ == '__main__':
        setup()