From b123553c1ac495009f11767a3d10a98625410e85 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Sun, 5 Aug 2012 12:29:16 -0500 Subject: yocto-bsp: allow branch display filtering Add a "branches_base" property that can be used to allow only matching branches to be returned from all_branches(). Signed-off-by: Tom Zanussi --- scripts/lib/bsp/engine.py | 7 +++++++ scripts/lib/bsp/kernel.py | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+) (limited to 'scripts') diff --git a/scripts/lib/bsp/engine.py b/scripts/lib/bsp/engine.py index cda1d148e7..8b058093a8 100644 --- a/scripts/lib/bsp/engine.py +++ b/scripts/lib/bsp/engine.py @@ -473,6 +473,11 @@ def gen_choices_defer(input_line, context, checklist = False): except KeyError: nameappend = "" + try: + branches_base = input_line.props["branches_base"] + except KeyError: + branches_base = "" + filename = input_line.props["filename"] closetag_start = filename.find(CLOSE_TAG) @@ -488,6 +493,8 @@ def gen_choices_defer(input_line, context, checklist = False): captured_context["filename"] = filename context["nameappend"] = nameappend captured_context["nameappend"] = nameappend + context["branches_base"] = branches_base + captured_context["branches_base"] = branches_base deferred_choice = (input_line, captured_context, checklist) key = name + "_" + filename + "_" + nameappend diff --git a/scripts/lib/bsp/kernel.py b/scripts/lib/bsp/kernel.py index 8b3aa72c9c..e9bc2e87af 100644 --- a/scripts/lib/bsp/kernel.py +++ b/scripts/lib/bsp/kernel.py @@ -711,6 +711,16 @@ def all_branches(context): tmp = os.popen(gitcmd).read() branches = [] + base_prefixes = None + + try: + branches_base = context["branches_base"] + if branches_base: + base_prefixes = branches_base.split(":") + except KeyError: + pass + + arch = context["arch"] if tmp: tmpline = tmp.split("\n") @@ -719,6 +729,14 @@ def all_branches(context): break; idx = line.find("refs/heads/") kbranch = line[idx + len("refs/heads/"):] + kbranch_prefix = kbranch.rsplit("/", 1)[0] + + if base_prefixes: + for base_prefix in base_prefixes: + if kbranch_prefix == base_prefix: + branches.append(kbranch) + continue + if (kbranch.find("/") != -1 and (kbranch.find("standard") != -1 or kbranch.find("base") != -1) or kbranch == "base"): -- cgit v1.2.3-54-g00ecf