X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;ds=inline;f=xsetbg-wsgi.py;h=c4d580032fe449cd30c49111032a7bb2f78aea44;hb=829a09494a1675180999fea2f675508e832489c4;hp=f4b78737100232015282fd358a2b963ca7a49419;hpb=cdffc4b36468a4d72497c25ec4a3bf1f54fe1b3f;p=xsetbg.git diff --git a/xsetbg-wsgi.py b/xsetbg-wsgi.py index f4b7873..c4d5800 100755 --- a/xsetbg-wsgi.py +++ b/xsetbg-wsgi.py @@ -6,37 +6,41 @@ 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") + host = xsetbg_conf.get("httpd", "host") else: - host = 'localhost' + host = 'localhost' if xsetbg_conf.has_option("httpd", "port"): - port = xsetbg_conf.getint("httpd", "port") + port = xsetbg_conf.getint("httpd", "port") else: - error("Config must specify a port to listen. Abort.") + 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 @@ -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()