From 0dd287461dc2d5188f45de8f16d06f3dc9bcb247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B0=D0=BC=D0=BE=D1=83=D0=BA=D0=B8=D0=BD=20=D0=90?= =?UTF-8?q?=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Thu, 19 Aug 2010 11:00:26 +0000 Subject: [PATCH] Changed algorithm of processing templates for scripts --- pym/cl_template.py | 59 +++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 32 deletions(-) diff --git a/pym/cl_template.py b/pym/cl_template.py index 268d620..d31ce1c 100644 --- a/pym/cl_template.py +++ b/pym/cl_template.py @@ -324,7 +324,7 @@ class fileHeader(_terms): # Параметры описанные в заголовке файла шаблона self.params = {} # некорректные параметры - incorrectParams = set([]) + incorrectParams = [] # Удаление Заголовка Calculate if comment: titleFirst = _("Modified") @@ -344,7 +344,12 @@ class fileHeader(_terms): reS = reCalcHeader.search(text) if reS: self.body = text[reS.end():] - + # Поиск строки запустка (#!/bin/bash и.т. д) + if fileType != "bin": + reExecRes = self.reExecStr.search(self.body) + if reExecRes: + self.execStr = self.body[reExecRes.start():reExecRes.end()] + self.body = self.body[reExecRes.end():] if fileType != False: if fileType=="bin": self.params["format"] = fileType @@ -407,11 +412,7 @@ class fileHeader(_terms): self.comment = self._getComment() self.fileType = self._getType() self.typeAppend = self._getAppend() - reExecRes = self.reExecStr.search(self.body) - if reExecRes: - self.execStr = self.body[reExecRes.start():reExecRes.end()] - self.body = self.body[reExecRes.end():] - if not incorrectParams: + if not incorrectParams and self.params: incorrectParams = set(self.params.keys()) - set(self.allowParam) if incorrectParams: self.headerTerm = False @@ -4337,6 +4338,16 @@ re.M|re.S) if objHeadNew.comment: objHeadOld = fileHeader(nameFileConfig, self.textConfig, objHeadNew.comment) + elif typeAppendTemplate in ("before", "after"): + objHeadOld = fileHeader(nameFileConfig, self.textConfig) + + # Строка вызова скрипта (#!/bin/bash ...) + execStr = "" + if objHeadNew.execStr: + execStr = objHeadNew.execStr + elif objHeadOld.execStr: + execStr = objHeadOld.execStr + if objHeadNew.fileType: formatTemplate = objHeadNew.fileType typeAppendTemplate = objHeadNew.typeAppend @@ -4361,9 +4372,8 @@ re.M|re.S) self.setError(_("False template") + ": " +\ nameFileTemplate) return False - if objHeadNew.execStr: - self.textConfig = objHeadNew.execStr+title+\ - self.textTemplate + if execStr: + self.textConfig = execStr + title + self.textTemplate else: self.textConfig = title + self.textTemplate self.saveConfFile() @@ -4442,10 +4452,8 @@ re.M|re.S) tmpTemplate = self.textTemplate + self.textConfig else: tmpTemplate = self.textTemplate + "\n" + self.textConfig - if objHeadNew.execStr: - self.textConfig = objHeadNew.execStr + title + tmpTemplate - elif objHeadOld and objHeadOld.execStr: - self.textConfig = objHeadOld.execStr + title + tmpTemplate + if execStr: + self.textConfig = execStr + title + tmpTemplate else: self.textConfig = title + tmpTemplate @@ -4464,10 +4472,8 @@ re.M|re.S) tmpTemplate = self.textConfig + self.textTemplate else: tmpTemplate = self.textConfig + "\n" + self.textTemplate - if objHeadNew.execStr: - self.textConfig = objHeadNew.execStr + title + tmpTemplate - elif objHeadOld and objHeadOld.execStr: - self.textConfig = objHeadOld.execStr + title + tmpTemplate + if execStr: + self.textConfig = execStr + title + tmpTemplate else: self.textConfig = title + tmpTemplate self.saveConfFile() @@ -4508,14 +4514,6 @@ re.M|re.S) if not self.textConfig or\ not reNoClean.search(self.textConfig): self.textConfig = "" - #if objHeadNew.execStr: - #self.textConfig = objHeadNew.execStr + \ - #title + objTemplNew.getConfig().encode("UTF-8") - #else: - #self.textConfig = title +\ - #objTemplNew.getConfig().encode("UTF-8") - #self.saveConfFile() - #return True objHeadOld = fileHeader(nameFileConfig, self.textConfig, objTemplNew._comment) @@ -4550,12 +4548,9 @@ re.M|re.S) data.insert(1,title) self.textConfig = "\n".join(data) else: - if objHeadNew.execStr: - self.textConfig = objHeadNew.execStr + title +\ - objTemplOld.getConfig().encode("UTF-8") - elif objHeadOld.execStr: - self.textConfig = objHeadOld.execStr + title +\ - objTemplOld.getConfig().encode("UTF-8") + if execStr: + self.textConfig = execStr + title +\ + objTemplOld.getConfig().encode("UTF-8") else: self.textConfig = title +\ objTemplOld.getConfig().encode("UTF-8")