]> git.phdru.name Git - xsetbg.git/blobdiff - xsetbg-wsgi.py
Style: Fix `flake8` errors E302,E305 expected 2 blank lines, found 1
[xsetbg.git] / xsetbg-wsgi.py
index c90da9258c13df1d2c7b7001c2c1ee389182f1a5..c4d580032fe449cd30c49111032a7bb2f78aea44 100755 (executable)
@@ -3,45 +3,49 @@
 
 """
 
-__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"
-
-
 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
+simple_server.ServerHandler = SimpleHandler  # Stop logging to stdout
+
+from xsetbg_conf import xsetbg_conf
+from xsetbg import change as _change
+
+# 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:
+    error("Config must specify a port to listen. Abort.")
+
 
-from xsetbg import host, port, change as _change
+commands = {}
 
 
 def published(func):
-    func._wsgi_published = True
+    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
 
 
-g = globals().copy()
-commands = dict([(name, g[name]) for name in g
-    if getattr(g[name], '_wsgi_published', False)])
-del g
-
 class QuitWSGIServer(WSGIServer):
     _quit_flag = False
 
@@ -49,8 +53,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')]
@@ -70,6 +75,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()