diff --git a/pym/cl_vars.py b/pym/cl_vars.py index 3d53a4c..3859baf 100644 --- a/pym/cl_vars.py +++ b/pym/cl_vars.py @@ -181,3 +181,6 @@ class Data: # programs have templates setup cl_merges = {} + + # (on or off) autoupdate config from install program + cl_autoupdate_set = {'official':True, 'value': "off"} diff --git a/pym/update_config/cl_update_config.py b/pym/update_config/cl_update_config.py index b70cbb2..0c8c44d 100644 --- a/pym/update_config/cl_update_config.py +++ b/pym/update_config/cl_update_config.py @@ -106,12 +106,17 @@ class DataVarsObject(cl_datavars.DataVars): class shareUpdateConfigs(color_print, writeLog): """Общие методы для обновления конфигурационных файлов""" reCleanVer = re.compile("\d+\.?\d*\.?\d*") + _tupleOn = ("on","On","oN","ON") - def getPrograms(self): - """Получаем установленные программы работающие с шаблонами""" + def getFlagUpdAndInstPrograms(self): + """Получаем флаг обновления и + + установленные программы работающие с шаблонами""" clVars = cl_datavars.DataVars() clVars.flIniFile() - return clVars.GetList("cl_merges") + flagUpdate = clVars.Get("cl_autoupdate_set") in self._tupleOn + return flagUpdate, clVars.GetList("cl_merges") + class updateUserConfigs(shareUpdateConfigs): """Обновление пользовательских конфигурационных файлов""" @@ -133,15 +138,23 @@ class updateUserConfigs(shareUpdateConfigs): return False return xUsers - def updateConfig(self, nameProgram, category, version, xUsers): + def updateConfig(self, nameProgram, category, version): """Обновление конфигурационных файлов у пользователей""" + # флаг обновления и программы используемые для наложения шаблонов + flagUpdate, mergePrograms = self.getFlagUpdAndInstPrograms() + if not flagUpdate: + return True + # Пользователи в X сессии + xUsers = self.getXUsers() + if not xUsers: + self.logger.info(_("Package %s") %nameProgram) + self.logger.warn(_("Not found X sessions users")) + return True cleanVer = self.reCleanVer.search(version) if cleanVer: version = cleanVer.group() self.logger.info(_("Package %s") %nameProgram) self.logger.info(_("Update desktop configuration files")) - # Программы используемые для наложения шаблонов - mergePrograms = self.getPrograms() if "calculate-desktop" in mergePrograms: mergePrograms = ["calculate-desktop"] else: @@ -226,6 +239,15 @@ class updateSystemConfigs(shareUpdateConfigs): def updateConfig(self, nameProgram, category, version, configPath): """Обновление системных конфигурационных файлов""" + # флаг обновления и программы используемые для наложения шаблонов + flagUpdate, mergePrograms = self.getFlagUpdAndInstPrograms() + if not flagUpdate: + return True + # Проверка есть ли в пакете защищенные конфигурационные файлы + if not self.isExistsProtectFiles(configPath): + self.logger.info(_("Package %s") %nameProgram) + self.logger.warn(_("Not found protected files")) + return True cleanVer = self.reCleanVer.search(version) if cleanVer: version = cleanVer.group() @@ -234,8 +256,6 @@ class updateSystemConfigs(shareUpdateConfigs): if not os.path.exists(configPath): self.printERROR(_("Path '%s' does not exist")%configPath) return False - # Программы используемые для наложения шаблонов - mergePrograms = self.getPrograms() dictPakkages = {} # Добавление условия, что программа category/nameProgram установлена cl_template.templateFunction.installProg.update(\ diff --git a/pym/update_config/cl_update_config_cmd.py b/pym/update_config/cl_update_config_cmd.py index ba1f78e..33e3181 100644 --- a/pym/update_config/cl_update_config_cmd.py +++ b/pym/update_config/cl_update_config_cmd.py @@ -109,27 +109,13 @@ class update_cmd: def updateSystemConfig(self, nameProgram, category, version, configPath): """Обновление системных конфигурационных файлов""" - # Проверка есть ли в пакете защищенные конфигурационные файлы - if not self.logicSystemObj.isExistsProtectFiles(configPath): - self.logicSystemObj.logger.info(_("Package %s") %nameProgram) - self.logicSystemObj.logger.warn(_("Not found protected files")) - return True - # Обновление конфигурационных файлов if not self.logicSystemObj.updateConfig(nameProgram, category, version, configPath): return False return True - + def updateUserConfig(self, nameProgram, category, version): """Обновление конфигурационных файлов для пользователей в X сеансах""" - # Пользователи в X сессии - xUsers = self.logicUserObj.getXUsers() - if not xUsers: - self.logicUserObj.logger.info(_("Package %s") %nameProgram) - self.logicUserObj.logger.warn(_("Not found X sessions users")) - return True - # Обновление конфигурационных файлов - if not self.logicUserObj.updateConfig(nameProgram, category, version, - xUsers): + if not self.logicUserObj.updateConfig(nameProgram, category, version): return False return True \ No newline at end of file