Changed algorithm of processing the header template

develop
Самоукин Алексей 14 years ago
parent 49050c59a1
commit 84a5971810

@ -308,7 +308,7 @@ class fileHeader(_terms):
# Символ комментария # Символ комментария
comment = False comment = False
# Выражение для поиска строки интерпретатора # Выражение для поиска строки интерпретатора
reExecStr = re.compile("^#!.+\s*",re.I) reExecStr = re.compile("^#!.+\s*",re.M)
# условные операторы # условные операторы
terms = ('>', '<', '==', '!=', '>=', '<=') terms = ('>', '<', '==', '!=', '>=', '<=')
# параметры без значения # параметры без значения
@ -326,11 +326,12 @@ class fileHeader(_terms):
# некорректные параметры # некорректные параметры
incorrectParams = [] incorrectParams = []
# Поиск строки запустка (#!/bin/bash и.т. д) # Поиск строки запустка (#!/bin/bash и.т. д)
if comment or (fileType != False and fileType!="bin"): if comment or fileType!="bin":
reExecRes = self.reExecStr.search(self.body) reExecRes = self.reExecStr.search(self.body)
if reExecRes: if reExecRes:
self.execStr = self.body[reExecRes.start():reExecRes.end()] self.execStr = self.body[reExecRes.start():reExecRes.end()]
self.body = self.body[reExecRes.end():] self.body = self.body[:reExecRes.start()] +\
self.body[reExecRes.end():]
# Удаление Заголовка Calculate # Удаление Заголовка Calculate
if comment: if comment:
titleFirst = _("Modified") titleFirst = _("Modified")
@ -339,24 +340,24 @@ class fileHeader(_terms):
reCalcHeader =\ reCalcHeader =\
re.compile("\s*%s\s+%s.+\s+(.+\n)+%s\s?"\ re.compile("\s*%s\s+%s.+\s+(.+\n)+%s\s?"\
%(comment[0], titleFirst, comment[1]),re.M|re.I) %(comment[0], titleFirst, comment[1]),re.M|re.I)
reS = reCalcHeader.search(text) reS = reCalcHeader.search(self.body)
if reS: if reS:
self.body = text[:reS.start()]+text[reS.end():] self.body = self.body[:reS.start()]+self.body[reS.end():]
else: else:
reCalcHeader = re.compile(\ reCalcHeader = re.compile(\
"\s*%s\-+\s+%s\s+%s.+\s+(%s.+\s+)+%s\-+\s?"\ "\s*%s\-+\s+%s\s+%s.+\s+(%s.+\s+)+%s\-+\s?"\
%(comment, comment, titleFirst ,comment,comment), %(comment, comment, titleFirst ,comment,comment),
re.M|re.I) re.M|re.I)
reS = reCalcHeader.search(text) reS = reCalcHeader.search(self.body)
if reS: if reS:
self.body = text[reS.end():] self.body = self.body[reS.end():]
if fileType != False: if fileType != False:
if fileType=="bin": if fileType=="bin":
self.params["format"] = fileType self.params["format"] = fileType
self.fileType = self._getType() self.fileType = self._getType()
self.typeAppend = self._getAppend() self.typeAppend = self._getAppend()
else: else:
textLines = text.splitlines() textLines = self.body.splitlines()
if textLines: if textLines:
textLine = textLines[0] textLine = textLines[0]
rePar = re.compile("\s*#\s*calculate\s+",re.I) rePar = re.compile("\s*#\s*calculate\s+",re.I)
@ -364,17 +365,17 @@ class fileHeader(_terms):
if reP: if reP:
reL = False reL = False
reLns = re.compile(r"\A([^\\\n]*\\\n)+[^\n]*\n*",re.M) reLns = re.compile(r"\A([^\\\n]*\\\n)+[^\n]*\n*",re.M)
reLs = reLns.search(text) reLs = reLns.search(self.body)
if reLs: if reLs:
reL = reLs reL = reLs
paramLine = text[reP.end():reLs.end()] paramLine = self.body[reP.end():reLs.end()]
paramLine = paramLine.replace("\\"," ") paramLine = paramLine.replace("\\"," ")
else: else:
reLn = re.compile("\n") reLn = re.compile("\n")
reL = reLn.search(text) reL = reLn.search(self.body)
paramLine = textLine[reP.end():] paramLine = textLine[reP.end():]
if reL: if reL:
self.body = text[reL.end():] self.body = self.body[reL.end():]
else: else:
self.body = "" self.body = ""
paramList = re.split("\s+",paramLine) paramList = re.split("\s+",paramLine)
@ -417,7 +418,7 @@ class fileHeader(_terms):
else: else:
self.headerTerm = False self.headerTerm = False
self.setError(_("incorrect header parameters - '%s'")\ self.setError(_("incorrect header parameters - '%s'")\
%"append=%s"%self.params["append"]) %"append=%s"%self.params["append"])
if not incorrectParams and self.params: if not incorrectParams and self.params:
incorrectParams = set(self.params.keys()) - set(self.allowParam) incorrectParams = set(self.params.keys()) - set(self.allowParam)
if incorrectParams: if incorrectParams:
@ -545,7 +546,13 @@ class dirHeader(_terms):
incorrectParams = set([i]) incorrectParams = set([i])
elif len(par) == 2: elif len(par) == 2:
self.params[par[0]] = par[1] self.params[par[0]] = par[1]
self.typeAppend = self._getAppend() typeAppend = self._getAppend()
if typeAppend:
self.typeAppend = typeAppend
else:
self.headerTerm = False
self.setError(_("incorrect header parameters - '%s'")\
%"append=%s"%self.params["append"])
if not flagErrorBody: if not flagErrorBody:
if not incorrectParams: if not incorrectParams:
incorrectParams = set(self.params.keys()) - set(self.allowParam) incorrectParams = set(self.params.keys()) - set(self.allowParam)
@ -556,9 +563,11 @@ class dirHeader(_terms):
def _getAppend(self): def _getAppend(self):
"""Выдать тип добавления директории""" """Выдать тип добавления директории"""
if self.params.has_key("append") and self.params["append"] in\ if self.params.has_key("append"):
self._fileAppend: if self.params["append"] in self._fileAppend:
return self.params["append"] return self.params["append"]
else:
return False
else: else:
return "join" return "join"
@ -4355,7 +4364,6 @@ re.M|re.S)
configFileType = self.getFileType(nameFileConfig) configFileType = self.getFileType(nameFileConfig)
objHeadOld = fileHeader(nameFileConfig, self.textConfig, objHeadOld = fileHeader(nameFileConfig, self.textConfig,
fileType=configFileType) fileType=configFileType)
# Строка вызова скрипта (#!/bin/bash ...) # Строка вызова скрипта (#!/bin/bash ...)
execStr = "" execStr = ""
if objHeadNew.execStr: if objHeadNew.execStr:
@ -4454,7 +4462,7 @@ re.M|re.S)
self.textConfig = title + self.textTemplate self.textConfig = title + self.textTemplate
self.saveConfFile() self.saveConfFile()
return filesApply return filesApply
# Впереди # Вверху
elif typeAppendTemplate == "before": elif typeAppendTemplate == "before":
if "xml_" in formatTemplate: if "xml_" in formatTemplate:
self.setError(\ self.setError(\
@ -4474,7 +4482,7 @@ re.M|re.S)
self.saveConfFile() self.saveConfFile()
return filesApply return filesApply
# ади # Внизу
elif typeAppendTemplate == "after": elif typeAppendTemplate == "after":
if "xml_" in formatTemplate: if "xml_" in formatTemplate:
self.setError(\ self.setError(\

@ -248,10 +248,14 @@ class updateSystemConfigs(shareUpdateConfigs):
dictPakkages[nameAndVerPkg] =\ dictPakkages[nameAndVerPkg] =\
sorted(list(set(dirsFiles[1]))) sorted(list(set(dirsFiles[1])))
if dictPakkages: if dictPakkages:
print dictPakkages
for calcPkg in dictPakkages: for calcPkg in dictPakkages:
self.printWARNING(_("Package %s has changed files")%calcPkg+":") self.printWARNING(_("Package %s has changed files")%calcPkg+":")
for nameF in dictPakkages[calcPkg]: for nameF in dictPakkages[calcPkg]:
nameFile = nameF.partition(configPath)[2] if nameF.startswith(configPath):
nameFile = nameF.partition(configPath)[2]
else:
nameFile = nameF
if nameFile[:1] != "/": if nameFile[:1] != "/":
nameFile = "/" + nameFile nameFile = "/" + nameFile
self.printWARNING(" "*5 + nameFile) self.printWARNING(" "*5 + nameFile)

Loading…
Cancel
Save