summary refs log tree commit diff
path: root/demo/webserver.py
diff options
context:
space:
mode:
Diffstat (limited to 'demo/webserver.py')
-rw-r--r--demo/webserver.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/demo/webserver.py b/demo/webserver.py
new file mode 100644
index 0000000000..78f3213540
--- /dev/null
+++ b/demo/webserver.py
@@ -0,0 +1,39 @@
+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()