]> git.phdru.name Git - xsetbg.git/blobdiff - xsetbg-wsgi.py
Fix(DB): Fix column encoding
[xsetbg.git] / xsetbg-wsgi.py
index 0e47b7f16cd6ff94e9d73241f1264adea749140c..aad53eea943228f9ecf29d8499d78d2949edcc13 100755 (executable)
@@ -1,39 +1,50 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """XSetBg (WSGI version)
 
 """
 
-__version__ = "$Revision$"[11:-2]
-__revision__ = "$Id$"[5:-2]
-__date__ = "$Date$"[7:-2]
-
-__author__ = "Oleg Broytman <phd@phdru.name>"
-__copyright__ = "Copyright (C) 2000-2011 PhiloSoft Design"
-__license__ = "GNU GPL"
-
-
+import sys
 from wsgiref import simple_server
 from wsgiref.handlers import SimpleHandler
 from wsgiref.simple_server import WSGIServer, make_server
-simple_server.ServerHandler = SimpleHandler # Stop logging to stdout
 
-from xsetbg import host, port, change as _change
+from xsetbg_conf import xsetbg_conf
+from xsetbg import change as _change
+
+simple_server.ServerHandler = SimpleHandler  # Stop logging to stdout
+
+# get httpd settings from config
+if xsetbg_conf.has_option("httpd", "host"):
+    host = xsetbg_conf.get("httpd", "host")
+else:
+    host = 'localhost'
+
+if xsetbg_conf.has_option("httpd", "port"):
+    port = xsetbg_conf.getint("httpd", "port")
+else:
+    def error(error_str):
+        sys.exit("%s: Error: %s\n" % (sys.argv[0], error_str))
+    error("Config must specify a port to listen. Abort.")
 
 
 commands = {}
 
+
 def published(func):
     commands[func.__name__] = func
     return func
 
+
 @published
 def change(force=False):
     _change()
 
+
 @published
 def force():
     _change(force=True)
 
+
 @published
 def stop():
     QuitWSGIServer._quit_flag = True
@@ -46,8 +57,9 @@ class QuitWSGIServer(WSGIServer):
         while not self._quit_flag:
             self.handle_request()
 
+
 def app(env, start_response):
-    command = env['PATH_INFO'][1:] # Remove the leading slash
+    command = env['PATH_INFO'][1:]  # Remove the leading slash
     if command not in commands:
         status = '404 Not found'
         response_headers = [('Content-type', 'text/plain')]
@@ -56,7 +68,7 @@ def app(env, start_response):
 
     try:
         commands[command]()
-    except:
+    except Exception:
         status = '500 Error'
         response_headers = [('Content-type', 'text/plain')]
         start_response(status, response_headers)
@@ -67,6 +79,7 @@ def app(env, start_response):
     start_response(status, response_headers)
     return ['Ok\n']
 
+
 force()
 httpd = make_server(host, port, app, server_class=QuitWSGIServer)
 httpd.serve_forever()