Added --pkg_version and --pkg_category options to cl-update-config

develop
Самоукин Алексей 14 years ago
parent 052d9566a9
commit 6bb79dd23d

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

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

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

Loading…
Cancel
Save