Example #1
0
    def readConfigFile(self, file=""):
        """Parse a configfile

		@param	self		A LTCConfigParser instance
		@param	file		A filepath string. Default is self.configfile
		"""
        print("__readConfigFile:", file)
        if not file and self.configfile:
            file = self.configfile
        elif not file and not self.configfile:
            return
        self.configfile = file
        self.backupfile = file + "~"

        # Register mtime and sha512sum
        self.st_mtime = os.stat(file).st_mtime
        self.hash = sha512sum(file)

        self._config = ET.parse(file, parser=self._parser).getroot()

        self._name = self._config.find("name")
        self._profiles = self._config.find("profiles")
        self._profileFalse = self._config.find("profileFalse")
        self._users = self._config.find("users")
        self._keys = self._config.find("keys")
	def run(self):
		"""Thread main routine

		Check if timestamp of configfile is different of self.configparser
		If yes, check if sha512sum is different
		If yes, reload configs
		@param	self		A FileChecker instance
		"""
		if not os.path.isfile(configfile): return

		if os.stat(configfile).st_mtime != self.configparser.st_mtime:
			hash = sha512sum(configfile)
			if hash != self.configparser.hash:
				print("__ refreshConfigFile")
				self.configparser.readConfigFile()
				self.reload.emit()