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 return userTemplDirs
def updateConfig(self, nameProgram, xUsers): def updateConfig(self, nameProgram, category, version, xUsers):
"""Обновление конфигурационных файлов у пользователей""" """Обновление конфигурационных файлов у пользователей"""
self.logger.info(_("Package %s") %nameProgram) self.logger.info(_("Package %s") %nameProgram)
self.logger.info(_("Update desktop configuration files")) self.logger.info(_("Update desktop configuration files"))
@ -219,6 +219,11 @@ class updateUserConfigs(shareUpdateConfigs):
section = sectName section = sectName
break break
if section: if section:
# Добавление условия, что программа category/nameProgram
# установлена
cl_template.templateFunction.installProg.update(\
{"%s/%s"%(category,nameProgram):[version],
"%s"%(nameProgram):[version]})
for userName in xUsers: for userName in xUsers:
clVars = DataVarsObject(section) clVars = DataVarsObject(section)
clVars.importDataObject() clVars.importDataObject()
@ -273,7 +278,7 @@ class updateSystemConfigs(shareUpdateConfigs):
return False return False
return True return True
def updateConfig(self, nameProgram, configPath): def updateConfig(self, nameProgram, category, version, configPath):
"""Обновление системных конфигурационных файлов""" """Обновление системных конфигурационных файлов"""
self.logger.info(_("Package %s") %nameProgram) self.logger.info(_("Package %s") %nameProgram)
self.logger.info(_("Update system cofiguration files")) self.logger.info(_("Update system cofiguration files"))
@ -301,6 +306,11 @@ class updateSystemConfigs(shareUpdateConfigs):
sections.append(sectName) sections.append(sectName)
dictPakkages = {} dictPakkages = {}
if sections:
# Добавление условия, что программа category/nameProgram установлена
cl_template.templateFunction.installProg.update(\
{"%s/%s"%(category,nameProgram):[version],
"%s"%(nameProgram):[version]})
for sectName in sections: for sectName in sections:
clVars = DataVarsObject(sectName) clVars = DataVarsObject(sectName)
clVars.importDataObject() clVars.importDataObject()

@ -33,7 +33,8 @@ USAGE = _("%prog [options] package_name")
COMMENT_EXAMPLES = _("Update configuration files of package nss_ldap") 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") DESCRIPTION = _("Update configuration files package installed")
@ -45,7 +46,13 @@ CMD_OPTIONS=[{'longOption':"system",
'help':_("update desktop (user) configuration files")}, 'help':_("update desktop (user) configuration files")},
{'longOption':"path", {'longOption':"path",
'optVal':"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: class update_cmd:
def __init__(self): def __init__(self):
@ -85,6 +92,14 @@ class update_cmd:
errMsg = _("no such option") + ":" + " --path" errMsg = _("no such option") + ":" + " --path"
self.optobj.error(errMsg) self.optobj.error(errMsg)
return False 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]): if not filter(lambda x: x, [optObj.system, optObj.desktop]):
errMsg = _("no such options") + ":" + " --system " + _("or") +\ errMsg = _("no such options") + ":" + " --system " + _("or") +\
" --desktop" " --desktop"
@ -92,7 +107,7 @@ class update_cmd:
return False return False
return optObj, args return optObj, args
def updateSystemConfig(self, nameProgram, configPath): def updateSystemConfig(self, nameProgram, category, version, configPath):
"""Обновление системных конфигурационных файлов""" """Обновление системных конфигурационных файлов"""
# Проверка есть ли в пакете защищенные конфигурационные файлы # Проверка есть ли в пакете защищенные конфигурационные файлы
if not self.logicSystemObj.isExistsProtectFiles(configPath): if not self.logicSystemObj.isExistsProtectFiles(configPath):
@ -100,11 +115,12 @@ class update_cmd:
self.logicSystemObj.logger.warn(_("Not found protected files")) self.logicSystemObj.logger.warn(_("Not found protected files"))
return True return True
# Обновление конфигурационных файлов # Обновление конфигурационных файлов
if not self.logicSystemObj.updateConfig(nameProgram, configPath): if not self.logicSystemObj.updateConfig(nameProgram, category, version,
configPath):
return False return False
return True return True
def updateUserConfig(self, nameProgram): def updateUserConfig(self, nameProgram, category, version):
"""Обновление конфигурационных файлов для пользователей в X сеансах""" """Обновление конфигурационных файлов для пользователей в X сеансах"""
# Пользователи в X сессии # Пользователи в X сессии
xUsers = self.logicUserObj.getXUsers() xUsers = self.logicUserObj.getXUsers()
@ -113,6 +129,7 @@ class update_cmd:
self.logicUserObj.logger.warn(_("Not found X sessions users")) self.logicUserObj.logger.warn(_("Not found X sessions users"))
return True return True
# Обновление конфигурационных файлов # Обновление конфигурационных файлов
if not self.logicUserObj.updateConfig(nameProgram, xUsers): if not self.logicUserObj.updateConfig(nameProgram, category, version,
xUsers):
return False return False
return True return True

@ -36,9 +36,11 @@ if __name__ == "__main__":
obj.setPrintNoColor(opts) obj.setPrintNoColor(opts)
# Выполняем логику программы # Выполняем логику программы
if opts.system: 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) sys.exit(1)
if opts.desktop: if opts.desktop:
if not obj.updateUserConfig(programName): if not obj.updateUserConfig(programName, opts.pkg_category,
opts.pkg_version):
sys.exit(1) sys.exit(1)
sys.exit(0) sys.exit(0)

Loading…
Cancel
Save