diff --git a/pym/update_config/cl_update_config.py b/pym/update_config/cl_update_config.py index d871c41..cbb1f10 100644 --- a/pym/update_config/cl_update_config.py +++ b/pym/update_config/cl_update_config.py @@ -190,7 +190,7 @@ class updateUserConfigs(shareUpdateConfigs): return userTemplDirs - def updateConfig(self, nameProgram, xUsers): + def updateConfig(self, nameProgram, category, version, xUsers): """Обновление конфигурационных файлов у пользователей""" self.logger.info(_("Package %s") %nameProgram) self.logger.info(_("Update desktop configuration files")) @@ -219,6 +219,11 @@ class updateUserConfigs(shareUpdateConfigs): section = sectName break if section: + # Добавление условия, что программа category/nameProgram + # установлена + cl_template.templateFunction.installProg.update(\ + {"%s/%s"%(category,nameProgram):[version], + "%s"%(nameProgram):[version]}) for userName in xUsers: clVars = DataVarsObject(section) clVars.importDataObject() @@ -273,7 +278,7 @@ class updateSystemConfigs(shareUpdateConfigs): return False return True - def updateConfig(self, nameProgram, configPath): + def updateConfig(self, nameProgram, category, version, configPath): """Обновление системных конфигурационных файлов""" self.logger.info(_("Package %s") %nameProgram) self.logger.info(_("Update system cofiguration files")) @@ -301,6 +306,11 @@ class updateSystemConfigs(shareUpdateConfigs): sections.append(sectName) dictPakkages = {} + if sections: + # Добавление условия, что программа category/nameProgram установлена + cl_template.templateFunction.installProg.update(\ + {"%s/%s"%(category,nameProgram):[version], + "%s"%(nameProgram):[version]}) for sectName in sections: clVars = DataVarsObject(sectName) clVars.importDataObject() diff --git a/pym/update_config/cl_update_config_cmd.py b/pym/update_config/cl_update_config_cmd.py index 5768f71..49a71b5 100644 --- a/pym/update_config/cl_update_config_cmd.py +++ b/pym/update_config/cl_update_config_cmd.py @@ -33,7 +33,8 @@ USAGE = _("%prog [options] package_name") COMMENT_EXAMPLES = _("Update configuration files of package nss_ldap") # Пример использования программы -EXAMPLES = _("%prog --system --path / nss_ldap") +EXAMPLES = _(r"%prog --system --pkg_category net-nds --pkg_version 2.4.19\ + --path / openldap") # Описание программы (что делает программа) DESCRIPTION = _("Update configuration files package installed") @@ -45,7 +46,13 @@ CMD_OPTIONS=[{'longOption':"system", 'help':_("update desktop (user) configuration files")}, {'longOption':"path", 'optVal':"PATH", - 'help':_("root path for saving the updated configuration files")}] + 'help':_("root path for saving the updated configuration files")}, + {'longOption':"pkg_category", + 'optVal':"CATEGORY", + 'help':_("package category name")}, + {'longOption':"pkg_version", + 'optVal':"VERSION", + 'help':_("package version number without the revision")}] class update_cmd: def __init__(self): @@ -85,6 +92,14 @@ class update_cmd: errMsg = _("no such option") + ":" + " --path" self.optobj.error(errMsg) return False + if not optObj.pkg_category: + errMsg = _("no such option") + ":" + " --pkg_category" + self.optobj.error(errMsg) + return False + if not optObj.pkg_version: + errMsg = _("no such option") + ":" + " --pkg_version" + self.optobj.error(errMsg) + return False if not filter(lambda x: x, [optObj.system, optObj.desktop]): errMsg = _("no such options") + ":" + " --system " + _("or") +\ " --desktop" @@ -92,7 +107,7 @@ class update_cmd: return False return optObj, args - def updateSystemConfig(self, nameProgram, configPath): + def updateSystemConfig(self, nameProgram, category, version, configPath): """Обновление системных конфигурационных файлов""" # Проверка есть ли в пакете защищенные конфигурационные файлы if not self.logicSystemObj.isExistsProtectFiles(configPath): @@ -100,11 +115,12 @@ class update_cmd: self.logicSystemObj.logger.warn(_("Not found protected files")) return True # Обновление конфигурационных файлов - if not self.logicSystemObj.updateConfig(nameProgram, configPath): + if not self.logicSystemObj.updateConfig(nameProgram, category, version, + configPath): return False return True - def updateUserConfig(self, nameProgram): + def updateUserConfig(self, nameProgram, category, version): """Обновление конфигурационных файлов для пользователей в X сеансах""" # Пользователи в X сессии xUsers = self.logicUserObj.getXUsers() @@ -113,6 +129,7 @@ class update_cmd: self.logicUserObj.logger.warn(_("Not found X sessions users")) return True # Обновление конфигурационных файлов - if not self.logicUserObj.updateConfig(nameProgram, xUsers): + if not self.logicUserObj.updateConfig(nameProgram, category, version, + xUsers): return False return True \ No newline at end of file diff --git a/scripts/cl-update-config b/scripts/cl-update-config index e76cc95..5eba010 100644 --- a/scripts/cl-update-config +++ b/scripts/cl-update-config @@ -36,9 +36,11 @@ if __name__ == "__main__": obj.setPrintNoColor(opts) # Выполняем логику программы if opts.system: - if not obj.updateSystemConfig(programName, opts.path): + if not obj.updateSystemConfig(programName,opts.pkg_category, + opts.pkg_version, opts.path): sys.exit(1) if opts.desktop: - if not obj.updateUserConfig(programName): + if not obj.updateUserConfig(programName, opts.pkg_category, + opts.pkg_version): sys.exit(1) sys.exit(0)