- if global_db: global_db.close()
-
- program_options = ["xli", "-onroot", "-quiet"] + \
- ["-center", "-border", random.choice(borders), "-zoom", "auto",
- image_name]
-
- rc = subprocess.call(program_options)
- if rc:
- error("cannot execute xli!")
-
-@published
-def force():
- ping(force=True)
-
-@published
-def stop():
- QuitWSGIServer._quit_flag = True
-
-
-from wsgiref.handlers import SimpleHandler
-from wsgiref import simple_server
-simple_server.ServerHandler = SimpleHandler # Stop logging to stdout
-from wsgiref.simple_server import WSGIServer, make_server
-
-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
-
- def serve_forever(self):
- while not self._quit_flag:
- self.handle_request()
-
-def app(env, start_response):
- command = env['PATH_INFO'][1:] # Remove the leading slash
- if command not in commands:
- status = '404 Not found'
- response_headers = [('Content-type', 'text/plain')]
- start_response(status, response_headers)
- return ['The command was not found.\n']
-
- try:
- commands[command]()
- except:
- status = '500 Error'
- response_headers = [('Content-type', 'text/plain')]
- start_response(status, response_headers)
- return ['Error occured!\n']
-
- status = '200 OK'
- response_headers = [('Content-type', 'text/plain')]
- start_response(status, response_headers)
- return ['Ok\n']
-
-httpd = make_server(host, port, app, server_class=QuitWSGIServer)
-httpd.serve_forever()