Esempio n. 1
0
    def __init__(self, logger):
        os.chdir("../")
        self.programPath = os.getcwd()
        os.chdir("app")
        self.__fs = FileSystem(".")
        self.__utils = Utils()
        self.__config = Config(fileSystem=self.__fs)
        self.__db = None
        self.__controller = None
        self.__feeder = None
        self.__webServerShutdownMethod = None
        self.__logger = logger
        self.__configWatcher = None
        dbName = self.__config.watcher.get("db", "sqlite")
        sys.path.insert(0, "../db/%s" % dbName)
        Database = __import__(dbName).Database
        dbFileName = self.__config.watcher.get("dbFile", "queue.db")

        print "Starting file watcher..."
        #------------------------
        self.__db = Database(dbFileName)
        self.__controller = Controller(self.__db, self.__fs, self.__config, \
                                FileWatcher, WatchDirectory, update=False)
        #self.__controller.configChanged(config)
        #self.__config.addReloadWatcher(self.__controller.configChanged)
        self.__configWatcher = FileWatcher(self.__config.configFile, self.__fs)
        self.__configWatcher.startWatching()
        def configChanged(file, eventName, **kwargs):
            #file=path, eventTime=eventTime, eventName=eventName, isDir=isDir, walk=False
            if eventName!="del" and file==self.__config.configFile:
                print "configChanged - reloading"
                self.__config.reload()
                self.__controller.configChanged(self.__config)
        self.__configWatcher.addListener(configChanged)

        self.__feeder = Feeder(self.__utils, self.__controller)
        feedservice = self.__config.watcher.get("feedservice", {})
        self.host = feedservice.get("host", "localhost")
        self.port = feedservice.get("port", 9000)
        self.__webServerShutdownMethod = webServe(self.host, self.port, self.__feeder)
        #------------------------
        print "host='%s', port=%s" % (self.host, self.port)
Esempio n. 2
0
    def __init__(self):
        os.chdir("../")
        self.programPath = os.getcwd()
        os.chdir("app")
        self.__fs = FileSystem(".")
        self.__utils = Utils()
        self.__config = Config(fileSystem=self.__fs)
        self.__dbFullFileame = None
        self.__db = None
        self.__controller = None
        self.__feeder = None
        self.__webServerShutdownMethod = None
        self.__watcherProgDir = self.__fs.absPath(".").rstrip("/app")
        dbName = self.__config.watcher.get("db", "sqlite")
        sys.path.append("../db/%s" % dbName)
        Database = __import__(dbName).Database
        self.__dbFullFileame = self.__config.watcher.get("dbFile", "queue.db")
        self.__dbFullFileame = self.__fs.absPath(self.__dbFullFileame)


        #------------------------
        stdout = sys.stdout
        stderr = sys.stderr
        # Note: must not output any data when running as a windows server.
        class Writer(object):
            def write(self, data):
                #stdout.write("** "+ data)
                # log
                pass
        if self.__config.daemon:
            w = Writer()
            sys.stdout = w
            sys.stderr = w
        #------------------------
        self.__db = Database(self.__dbFullFileame)
        self.__controller = Controller(self.__db, self.__fs, self.__config, \
                                FileWatcher, WatchDirectory, update=False, \
                                globalIgnoreFilter=self.__globalIgnoreFilter)
        #self.__controller.configChanged(config)
        #self.__config.addReloadWatcher(self.__controller.configChanged)
        configFile = self.__fs.absPath(self.__config.configFile)
        configWatcher = FileWatcher(configFile, self.__fs)
        configWatcher.startWatching()
        def configChanged(file, eventName, **kwargs):
            #file=path, eventTime=eventTime, eventName=eventName, isDir=isDir, walk=False
            if eventName!="del" and file==self.__config.configFile:
                print "configChanged - reloading"
                self.__config.reload()
                self.__controller.configChanged(self.__config)
        configWatcher.addListener(configChanged)

        self.__feeder = Feeder(self.__utils, self.__controller)
        feedservice = self.__config.watcher.get("feedservice", {})
        host = feedservice.get("host", "localhost")
        port = feedservice.get("port", 9000)
        self.__webServerShutdownMethod = webServe(host, port, self.__feeder)
        #------------------------
        print "host='%s', port=%s" % (host, port)
        print "Press enter to exit..."
        raw_input()
        configWatcher.close()
        self.__controller.close()
        self.__webServerShutdownMethod()
        #print self.__controller._getRecordsCount()
        #print self.queue.getFromDate(0)
        sys.stdout = stdout
        sys.stderr = stderr