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)
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