#!/usr/bin/python import sys, time sys.path.insert(0,'/usr/lib/entropy/libraries') sys.path.insert(0,'/usr/lib/entropy/client') sys.path.insert(0,'../libraries') sys.path.insert(0,'../client') # disable pid management sys.argv.append("--no-pid-handling") do_ssl = False do_stdout_logging = True if "--ssl" in sys.argv: do_ssl = True if "--nostdout" in sys.argv: do_stdout_logging = False import entropyTools, exceptionTools from entropy import RepositorySocketServerInterface, phpBB3AuthInterface, phpbb3Authenticator, phpbb3Commands connection_data = { 'hostname': 'localhost', 'port': 3306, 'username': 'phpbb_user', 'password': 'mypassword', 'dbname': 'phpbb_db' } # configure my repositories repositories = { ('sabayonlinux.org','amd64','standard',): { 'dbpath': '/home/fabio/new.sabayonlinux.org/standard/amd64', 'cmethod': 'bz2', }, } def run_srv(s): try: s.go() except (KeyboardInterrupt, SystemExit,): s.killall() sock_auth = (phpbb3Authenticator,[],connection_data) srv_ssl = None srv = RepositorySocketServerInterface( do_ssl = False, repositories = repositories, stdout_logging = do_stdout_logging, sock_auth = sock_auth, external_cmd_classes = [phpbb3Commands] ) if do_ssl: srv_ssl = RepositorySocketServerInterface( do_ssl = True, repositories = repositories, stdout_logging = do_stdout_logging, sock_auth = sock_auth, external_cmd_classes = [phpbb3Commands] ) task = entropyTools.parallelTask(run_srv, srv) task.setName('repodaemon') task.start() if srv_ssl != None: task = entropyTools.parallelTask(run_srv, srv_ssl) task.setName('repodaemon_ssl') task.start() while 1: try: time.sleep(1) found = False threads = entropyTools.threading.enumerate() for thread in threads: if thread.getName() in ["repodaemon","repodaemon_ssl"]: found = True break if not found: break except (KeyboardInterrupt, SystemExit,): threads = entropyTools.threading.enumerate() for thread in threads: if thread.getName() in ["repodaemon","repodaemon_ssl"]: thread.args[0].killall() raise SystemExit