diff options
author | RaNaN <Mast3rRaNaN@hotmail.de> | 2010-02-10 21:59:31 +0100 |
---|---|---|
committer | RaNaN <Mast3rRaNaN@hotmail.de> | 2010-02-10 21:59:31 +0100 |
commit | 6c4eabfc4b686a72224ff06cb56c385bfc489790 (patch) | |
tree | 913239e4a2d994e813134b94f66a49eec9a4b201 /module/web/ServerThread.py | |
parent | webif patch #75 (thx kepheus) (diff) | |
download | pyload-6c4eabfc4b686a72224ff06cb56c385bfc489790.tar.xz |
Webinterface with lighttpd! locale fixing try.
Diffstat (limited to 'module/web/ServerThread.py')
-rw-r--r-- | module/web/ServerThread.py | 97 |
1 files changed, 71 insertions, 26 deletions
diff --git a/module/web/ServerThread.py b/module/web/ServerThread.py index 1276966ef..5d0dc8738 100644 --- a/module/web/ServerThread.py +++ b/module/web/ServerThread.py @@ -1,52 +1,97 @@ #!/usr/bin/env python from __future__ import with_statement -import threading -from os.path import join +import os from os.path import exists -from subprocess import Popen, PIPE, STDOUT -from time import sleep +from os.path import join from signal import SIGINT -import os +from subprocess import PIPE +from subprocess import Popen +from subprocess import call +from sys import version_info +import threading +from time import sleep class WebServer(threading.Thread): def __init__(self, pycore): threading.Thread.__init__(self) self.pycore = pycore self.running = True + self.lighttpd = False self.setDaemon(True) def run(self): host = self.pycore.config['webinterface']['host'] port = self.pycore.config['webinterface']['port'] + path = join(self.pycore.path, "module", "web") - if not exists(join(self.pycore.path,"module","web","pyload.db")): + if not exists(join(self.pycore.path, "module", "web", "pyload.db")): print "########## IMPORTANT ###########" print "### Database for Webinterface doesnt exitst, it will not be available." - print "### Please run: python %s syncdb" % join(self.pycore.path,"module","web","manage.py") - print "### You have to add at least one User, to gain access to webinterface: python %s createsuperuser" % join(self.pycore.path,"module","web","manage.py") + print "### Please run: python %s syncdb" % join(self.pycore.path, "module", "web", "manage.py") + print "### You have to add at least one User, to gain access to webinterface: python %s createsuperuser" % join(self.pycore.path, "module", "web", "manage.py") print "### Dont forget to restart pyLoad if you are done." print "################################" - raise Exception, "Database doesnt exists, please use syncdb" - - self.pycore.logger.info("Starting Webserver: %s:%s" % (host,port) ) - - if os.name == 'posix': - command = ['python',join(self.pycore.path,"module","web","run_unix.py"), "runserver", "%s:%s" % (host,port)] - self.p = Popen(command, close_fds=True, stderr=PIPE, stdin=PIPE, stdout=PIPE) - #os.system("python " + join(self.pycore.path,"module","web","manage.py runserver %s:%s" % (host,port))) - #@TODO: better would be real python code - sleep(1) - with open("webserver.pid", "r") as f: - self.pid = int(f.read().strip()) - while self.running: - sleep(1) - else: - command = ['python',join(self.pycore.path,"module","web","manage.py"), "runserver", "%s:%s" % (host,port)] + return None + + try: + call(["lighttpd", "-v"], stdout=PIPE, stderr=PIPE) + import flup + self.lighttpd = True + + except Exception: + self.lighttpd = False + + if self.lighttpd: + self.pycore.logger.info("Starting lighttpd Webserver: %s:%s" % (host, port)) + config = file(join(path, "lighttpd", "lighttpd_default.conf"), "rb") + content = config.readlines() + config.close() + content = "".join(content) + + content = content.replace("%(path)", join(path, "lighttpd")) + content = content.replace("%(host)", host) + content = content.replace("%(port)", port) + content = content.replace("%(media)", join(path, "media")) + content = content.replace("%(version)", ".".join(map(str,version_info[0:2]))) + + new_config = file(join(path, "lighttpd", "lighttpd.conf"), "wb") + new_config.write(content) + new_config.close() + + command = ['python', join(self.pycore.path, "module", "web", "manage.py"), "runfcgi", "daemonize=false", "method=threaded", "host=127.0.0.1", "port=9295"] self.p = Popen(command, stderr=PIPE, stdin=PIPE, stdout=PIPE) - while self.running: + + command2 = ['lighttpd', '-D', '-f', join(path, "lighttpd", "lighttpd.conf")] + self.p2 = Popen(command2, stderr=PIPE, stdin=PIPE, stdout=PIPE) + + + + else: + self.pycore.logger.info("Starting django buildin Webserver: %s:%s" % (host, port)) + + if os.name == 'posix': + command = ['python', join(self.pycore.path, "module", "web", "run_unix.py"), "runserver", "%s:%s" % (host, port)] + self.p = Popen(command, close_fds=True, stderr=PIPE, stdin=PIPE, stdout=PIPE) + #os.system("python " + join(self.pycore.path,"module","web","manage.py runserver %s:%s" % (host,port))) + #@TODO: better would be real python code sleep(1) - + with open("webserver.pid", "r") as f: + self.pid = int(f.read().strip()) + while self.running: + sleep(1) + else: + command = ['python', join(self.pycore.path, "module", "web", "manage.py"), "runserver", "%s:%s" % (host, port)] + self.p = Popen(command, stderr=PIPE, stdin=PIPE, stdout=PIPE) + while self.running: + sleep(1) + def quit(self): + + if self.lighttpd: + self.p.kill() + self.p2.kill() + return True + if os.name == 'posix': try: os.kill(self.pid, SIGINT) |