From afb769e5977f9982ace29bb477a5f880fcb6859d Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sun, 23 Oct 2011 21:02:21 +0200 Subject: [PATCH] Fix expansion of scriptlets when using templates. --- python/pakfire/packages/lexer.py | 17 ++++++++++++++++- python/pakfire/packages/make.py | 7 +------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/python/pakfire/packages/lexer.py b/python/pakfire/packages/lexer.py index fd7863270..9ca0e4205 100644 --- a/python/pakfire/packages/lexer.py +++ b/python/pakfire/packages/lexer.py @@ -650,9 +650,12 @@ class TemplateLexer(DefaultLexer): self.scriptlets[name] = { "lang" : "shell", - "scriptlet" : self.expand_string("\n".join(lines)), + "scriptlet" : "\n".join(lines), } + def get_scriptlet(self, name): + return self.scriptlets.get(name, None) + class PackageLexer(TemplateLexer): def init(self, environ): @@ -710,6 +713,18 @@ class PackageLexer(TemplateLexer): # Check if template exists. assert self.template + def get_scriptlet(self, name): + scriptlet = self.scriptlets.get(name, None) + + if scriptlet is None and self.template: + scriptlet = self.template.get_scriptlet(name) + + if scriptlet and scriptlet["lang"] == "shell": + scriptlet["scriptlet"] = \ + self.expand_string(scriptlet["scriptlet"]) + + return scriptlet + class ExportLexer(DefaultLexer): @property diff --git a/python/pakfire/packages/make.py b/python/pakfire/packages/make.py index b23e82854..308dcab57 100644 --- a/python/pakfire/packages/make.py +++ b/python/pakfire/packages/make.py @@ -465,12 +465,7 @@ class MakefilePackage(MakefileBase): return self.get_deps("conflicts") def get_scriptlet(self, type): - scriptlet = self.lexer.scriptlets.get(type, None) - - if scriptlet is None and self.lexer.template: - scriptlet = self.lexer.template.scriptlets.get(type, None) - - return scriptlet + return self.lexer.get_scriptlet(type) @property def inst_size(self): -- 2.39.5