From 3115187e468398a8c1edaf3e5369a2d10fb112f4 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Thu, 4 Apr 2013 17:34:39 +0100 Subject: 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". Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/lib/oe/tests/test_utils.py | 27 +++++++++++++++++++++++++++ meta/lib/oe/utils.py | 16 ++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 meta/lib/oe/tests/test_utils.py (limited to 'meta/lib') diff --git a/meta/lib/oe/tests/test_utils.py b/meta/lib/oe/tests/test_utils.py new file mode 100644 index 0000000000..466c47eb9c --- /dev/null +++ b/meta/lib/oe/tests/test_utils.py @@ -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"]) diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py index b269f32277..acd39693b5 100644 --- a/meta/lib/oe/utils.py +++ b/meta/lib/oe/utils.py @@ -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 -- cgit 1.2.3-korg