|
|
|
@ -2955,6 +2955,136 @@ or 'lower' or 'capitalize'"))
|
|
|
|
|
textTemplateTmp[resS.end():]
|
|
|
|
|
return textTemplateTmp
|
|
|
|
|
|
|
|
|
|
def funcList(self, funArgv, resS, localVars, textTemplateTmp):
|
|
|
|
|
"""Функция шаблона list().
|
|
|
|
|
Если первый аргумент является именем локальной или глобальной
|
|
|
|
|
переменной и значение переменной является списком, выдает
|
|
|
|
|
элемент списка по второму аргументу индексу.
|
|
|
|
|
Первый элемент имеет индекс 0
|
|
|
|
|
"""
|
|
|
|
|
terms = funArgv.replace(" ","").split(",")
|
|
|
|
|
# У функции должно быть два аргумента
|
|
|
|
|
if len(terms) != 2:
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
# Название локальной или глобальной переменной
|
|
|
|
|
nameLocVar = terms[0]
|
|
|
|
|
strIndex = terms[1]
|
|
|
|
|
try:
|
|
|
|
|
intIndex = int(strIndex)
|
|
|
|
|
except:
|
|
|
|
|
cl_overriding.printERROR(_("'%s' is not a number")%strIndex)
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
flagFoundVar = False
|
|
|
|
|
if nameLocVar in localVars.keys():
|
|
|
|
|
flagFoundVar = True
|
|
|
|
|
value = localVars[nameLocVar]
|
|
|
|
|
else:
|
|
|
|
|
try:
|
|
|
|
|
value = self.objVar.Get(nameLocVar)
|
|
|
|
|
flagFoundVar = True
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
if not flagFoundVar:
|
|
|
|
|
# Если переменная не существует
|
|
|
|
|
cl_overriding.printERROR(_("error var %s not exists")\
|
|
|
|
|
%str(nameLocVar))
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
if not type(value) in (list,tuple):
|
|
|
|
|
# Значение переменной не список или кортеж
|
|
|
|
|
cl_overriding.printERROR(_("value of %s is not a list or tuple")\
|
|
|
|
|
%str(nameLocVar))
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
try:
|
|
|
|
|
replace = str(value[intIndex])
|
|
|
|
|
except:
|
|
|
|
|
cl_overriding.printERROR(_("%s wrong")%strIndex)
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
textTemplateTmp = textTemplateTmp[:resS.start()] + replace +\
|
|
|
|
|
textTemplateTmp[resS.end():]
|
|
|
|
|
return textTemplateTmp
|
|
|
|
|
|
|
|
|
|
def funcDisk(self, funArgv, resS, localVars, textTemplateTmp):
|
|
|
|
|
"""Функция шаблона disk().
|
|
|
|
|
Первый аргумент ищется в значении переменной os_disk_install
|
|
|
|
|
(значение os_disk_install - список точек монтирования при установке)
|
|
|
|
|
второй аргумент используется для поиска в переменной
|
|
|
|
|
os_disk_второй_аргумент (значение os_disk_второй_аргумент - список)
|
|
|
|
|
В os_disk_install ищется первый аргумент, находим его индекс
|
|
|
|
|
результат - элемент cписка из os_disk_второй_аргумент с этим индексом
|
|
|
|
|
"""
|
|
|
|
|
terms = funArgv.replace(" ","").split(",")
|
|
|
|
|
# У функции должно быть два аргумента
|
|
|
|
|
if len(terms) != 2:
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
# Название глобальной переменной
|
|
|
|
|
mountPoint = terms[0]
|
|
|
|
|
lastElementVar = terms[1]
|
|
|
|
|
if not mountPoint or mountPoint[:1] !="/":
|
|
|
|
|
cl_overriding.printERROR(_("%s wrong")%lastElementVar)
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
nameVar = "os_disk_install"
|
|
|
|
|
try:
|
|
|
|
|
valueVar = self.objVar.Get(nameVar)
|
|
|
|
|
except:
|
|
|
|
|
# Если переменная не существует
|
|
|
|
|
cl_overriding.printERROR(_("error var %s not exists")%nameVar)
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
nameElementVar = "os_disk_%s"%lastElementVar
|
|
|
|
|
try:
|
|
|
|
|
valueElementVar = self.objVar.Get(nameElementVar)
|
|
|
|
|
except:
|
|
|
|
|
# Если переменная не существует
|
|
|
|
|
cl_overriding.printERROR(_("%s wrong")%lastElementVar)
|
|
|
|
|
cl_overriding.printERROR(_("error var %s not exists")\
|
|
|
|
|
%nameElementVar)
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
if not type(valueVar) in (list,tuple):
|
|
|
|
|
# Значение переменной не список или кортеж
|
|
|
|
|
cl_overriding.printERROR(_("value of %s is not a list or tuple")\
|
|
|
|
|
%nameVar)
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
if not type(valueElementVar) in (list,tuple):
|
|
|
|
|
# Значение переменной не список или кортеж
|
|
|
|
|
cl_overriding.printERROR(_("value of %s is not a list or tuple")\
|
|
|
|
|
%nameElementVar)
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
if len(valueVar) != len(valueElementVar):
|
|
|
|
|
cl_overriding.printERROR(\
|
|
|
|
|
_("size %s is not equal to the size of %s")\
|
|
|
|
|
%(nameVar, nameElementVar))
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
index = None
|
|
|
|
|
for num, mPoint in enumerate(valueVar):
|
|
|
|
|
if mountPoint == mPoint:
|
|
|
|
|
index = num
|
|
|
|
|
break
|
|
|
|
|
if index is None:
|
|
|
|
|
for num, mPoint in enumerate(valueVar):
|
|
|
|
|
if "/" == mPoint:
|
|
|
|
|
index = num
|
|
|
|
|
break
|
|
|
|
|
if index is None:
|
|
|
|
|
cl_overriding.printERROR(_("in the value of the variable \
|
|
|
|
|
os_disk_install not found mount point '\' and '\%s'")%mountPoint)
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
replace = valueElementVar[index]
|
|
|
|
|
textTemplateTmp = textTemplateTmp[:resS.start()] + replace +\
|
|
|
|
|
textTemplateTmp[resS.end():]
|
|
|
|
|
return textTemplateTmp
|
|
|
|
|
|
|
|
|
|
def printErrTemplate(self):
|
|
|
|
|
"""Печать ошибки при обработке функций шаблона"""
|
|
|
|
|
cl_overriding.printERROR(_("error in template %s")%self.nameTemplate)
|
|
|
|
|