diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py
index 17926be88c..85284a4919 100755
--- a/synapse/app/homeserver.py
+++ b/synapse/app/homeserver.py
@@ -43,6 +43,7 @@ import os
import re
import sys
import sqlite3
+import syweb
logger = logging.getLogger(__name__)
@@ -59,7 +60,9 @@ class SynapseHomeServer(HomeServer):
return JsonResource()
def build_resource_for_web_client(self):
- return File("webclient") # TODO configurable?
+ syweb_path = os.path.dirname(syweb.__file__)
+ webclient_path = os.path.join(syweb_path, "webclient")
+ return File(webclient_path) # TODO configurable?
def build_resource_for_content_repo(self):
return ContentRepoResource(
@@ -234,7 +237,10 @@ def setup():
f.namespace['hs'] = hs
reactor.listenTCP(config.manhole, f, interface='127.0.0.1')
- hs.start_listening(config.bind_port, config.unsecure_port)
+ bind_port = config.bind_port
+ if config.no_tls:
+ bind_port = None
+ hs.start_listening(bind_port, config.unsecure_port)
if config.daemonize:
print config.pid_file
diff --git a/synapse/app/synctl.py b/synapse/app/synctl.py
new file mode 100755
index 0000000000..e85073b06b
--- /dev/null
+++ b/synapse/app/synctl.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright 2014 OpenMarket Ltd
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import sys
+import os
+import subprocess
+import signal
+
+SYNAPSE = ["python", "-m", "synapse.app.homeserver"]
+
+CONFIGFILE="homeserver.yaml"
+PIDFILE="homeserver.pid"
+
+GREEN="\x1b[1;32m"
+NORMAL="\x1b[m"
+
+def start():
+ if not os.path.exists(CONFIGFILE):
+ sys.stderr.write(
+ "No config file found\n"
+ "To generate a config file, run '%s -c %s --generate-config"
+ " --server-name=<server name>'\n" % (
+ " ".join(SYNAPSE), CONFIGFILE
+ )
+ )
+ sys.exit(1)
+ print "Starting ...",
+ args = SYNAPSE
+ args.extend(["--daemonize", "-c", CONFIGFILE, "--pid-file", PIDFILE])
+ subprocess.check_call(args)
+ print GREEN + "started" + NORMAL
+
+def stop():
+ if os.path.exists(PIDFILE):
+ pid = int(open(PIDFILE).read())
+ os.kill(pid, signal.SIGTERM)
+ print GREEN + "stopped" + NORMAL
+
+def main():
+ action = sys.argv[1] if sys.argv[1:] else "usage"
+ if action == "start":
+ start()
+ elif action == "stop":
+ stop()
+ elif action == "restart":
+ start()
+ stop()
+ else:
+ sys.stderr.write("Usage: %s [start|stop|restart]\n" % (sys.argv[0],))
+ sys.exit(1)
+
+if __name__=='__main__':
+ main()
|