bitbake/data_smart: Refactor _append/_prepend code to remove duplication

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
Richard Purdie 2010-12-07 12:25:24 +00:00
parent c354955d26
commit 7aacc310b5
1 changed files with 21 additions and 34 deletions

View File

@ -154,42 +154,29 @@ class DataSmart:
bb.msg.note(1, bb.msg.domain.Data, "Untracked delVar")
# now on to the appends and prepends
if "_append" in self._special_values:
appends = self._special_values["_append"] or []
for append in appends:
keep = []
for (a, o) in self.getVarFlag(append, "_append") or []:
if o and not o in overrides:
keep.append((a ,o))
continue
for op in __setvar_keyword__:
if op in self._special_values:
appends = self._special_values[op] or []
for append in appends:
keep = []
for (a, o) in self.getVarFlag(append, op) or []:
if o and not o in overrides:
keep.append((a ,o))
continue
sval = self.getVar(append, False) or ""
sval += a
self.setVar(append, sval)
# We save overrides that may be applied at some later stage
if keep:
self.setVarFlag(append, "_append", keep)
else:
self.delVarFlag(append, "_append")
if "_prepend" in self._special_values:
prepends = self._special_values["_prepend"] or []
for prepend in prepends:
keep = []
for (a, o) in self.getVarFlag(prepend, "_prepend") or []:
if o and not o in overrides:
keep.append((a ,o))
continue
sval = a + (self.getVar(prepend, False) or "")
self.setVar(prepend, sval)
# We save overrides that may be applied at some later stage
if keep:
self.setVarFlag(prepend, "_prepend", keep)
else:
self.delVarFlag(prepend, "_prepend")
if op is "_append":
sval = self.getVar(append, False) or ""
sval += a
self.setVar(append, sval)
elif op is "_prepend":
sval = a + (self.getVar(append, False) or "")
self.setVar(append, sval)
# We save overrides that may be applied at some later stage
if keep:
self.setVarFlag(append, op, keep)
else:
self.delVarFlag(append, op)
def initVar(self, var):
self.expand_cache = {}