From 41c69dc405e57e428e451e58a55d7c62b8ced08c 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: Wed, 15 Dec 2010 10:32:25 +0300 Subject: [PATCH] Add third option in template function load() --- pym/cl_template.py | 60 +++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/pym/cl_template.py b/pym/cl_template.py index f35cba2..ed5119f 100644 --- a/pym/cl_template.py +++ b/pym/cl_template.py @@ -2601,49 +2601,55 @@ class templateFunction(_error, _shareTemplate, _shareTermsFunction): если один параметр - выводит значение локальной переменной """ terms = funArgv.split(",") - if not terms or not terms[0].strip() or\ - (len(terms)==2 and not terms[1].strip()) or\ - len(terms)>2: + if terms: + lenTerms = len(terms) + if not terms[0].strip() or\ + (lenTerms==2 and not terms[1].strip()) or\ + (lenTerms==3 and not terms[2].strip()) or\ + lenTerms>3: + self.printErrTemplate() + cl_overriding.exit(1) + else: self.printErrTemplate() cl_overriding.exit(1) - if len(terms) == 2: + flagNotRootFS = True + if lenTerms == 3: + if terms[2] =="root": + flagNotRootFS = False + else: + self.printErrTemplate() + cl_overriding.printERROR(\ + _("Third argument function is not 'root'")) + cl_overriding.exit(1) + if lenTerms >= 2: if not terms[0] in ["ver","num","char","key"]: self.printErrTemplate() cl_overriding.printERROR(\ _("first argument function is not 'ver' or 'num' or 'char'")) cl_overriding.exit(1) - if len(terms) == 1: + + if lenTerms == 1: fileName = terms[0].strip() - # Если домашняя директория - if fileName[0] == "~": - # Получаем директорию пользователя - fileName = os.path.join(self.homeDir, - fileName.partition("/")[2],"")[:-1] - elif fileName[0] != "/": - self.printErrTemplate() - cl_overriding.printERROR(_("wrong path '%s'")%fileName) - cl_overriding.exit(1) - else: - fileName = pathJoin(self._baseDir, fileName) else: fileName = terms[1].strip() - # Если домашняя директория - if fileName[0] == "~": - # Получаем директорию пользователя - fileName = os.path.join(self.homeDir, - fileName.partition("/")[2],"")[:-1] - elif fileName[0] != "/": - self.printErrTemplate() - cl_overriding.printERROR(_("wrong path '%s'")%fileName) - cl_overriding.exit(1) - else: + # Если домашняя директория + if fileName[0] == "~": + # Получаем директорию пользователя + fileName = os.path.join(self.homeDir, + fileName.partition("/")[2],"")[:-1] + elif fileName[0] != "/": + self.printErrTemplate() + cl_overriding.printERROR(_("wrong path '%s'")%fileName) + cl_overriding.exit(1) + else: + if flagNotRootFS: fileName = pathJoin(self._baseDir,fileName) replace = "" if os.path.exists(fileName): FD = open(fileName) replace = FD.read().strip() FD.close - if not replace and len(terms) == 2 and terms[0] in ["ver","num"]: + if not replace and lenTerms >= 2 and terms[0] in ["ver","num"]: replace = "0" textTemplateTmp = textTemplateTmp[:resS.start()] + replace +\ textTemplateTmp[resS.end():]