utils: add helper to get all non-system packages
For example if PACKAGES is "foo foo-data foo-dev foo-doc", this will return "foo-data". (From OE-Core rev: 3115187e468398a8c1edaf3e5369a2d10fb112f4) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
59e425455f
commit
0e904db7da
|
@ -0,0 +1,27 @@
|
|||
import unittest
|
||||
import bb, oe.utils
|
||||
|
||||
class TestPackagesFilterOutSystem(unittest.TestCase):
|
||||
def test_filter(self):
|
||||
"""
|
||||
Test that oe.utils.packages_filter_out_system works.
|
||||
"""
|
||||
|
||||
d = bb.data_smart.DataSmart()
|
||||
d.setVar("PN", "foo")
|
||||
|
||||
d.setVar("PACKAGES", "foo foo-doc foo-dev")
|
||||
pkgs = oe.utils.packages_filter_out_system(d)
|
||||
self.assertEqual(pkgs, [])
|
||||
|
||||
d.setVar("PACKAGES", "foo foo-doc foo-data foo-dev")
|
||||
pkgs = oe.utils.packages_filter_out_system(d)
|
||||
self.assertEqual(pkgs, ["foo-data"])
|
||||
|
||||
d.setVar("PACKAGES", "foo foo-locale-en-gb")
|
||||
pkgs = oe.utils.packages_filter_out_system(d)
|
||||
self.assertEqual(pkgs, [])
|
||||
|
||||
d.setVar("PACKAGES", "foo foo-data foo-locale-en-gb")
|
||||
pkgs = oe.utils.packages_filter_out_system(d)
|
||||
self.assertEqual(pkgs, ["foo-data"])
|
|
@ -107,3 +107,19 @@ def features_backfill(var,d):
|
|||
|
||||
if addfeatures:
|
||||
d.appendVar(var, " " + " ".join(addfeatures))
|
||||
|
||||
|
||||
def packages_filter_out_system(d):
|
||||
"""
|
||||
Return a list of packages from PACKAGES with the "system" packages such as
|
||||
PN-dbg PN-doc PN-locale-eb-gb removed.
|
||||
"""
|
||||
pn = d.getVar('PN', True)
|
||||
blacklist = map(lambda suffix: pn + suffix, ('', '-dbg', '-dev', '-doc', '-locale', '-staticdev'))
|
||||
localepkg = pn + "-locale-"
|
||||
pkgs = []
|
||||
|
||||
for pkg in d.getVar('PACKAGES', True).split():
|
||||
if pkg not in blacklist and localepkg not in pkg:
|
||||
pkgs.append(pkg)
|
||||
return pkgs
|
||||
|
|
Loading…
Reference in New Issue