summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyan Long <ryan.long@oarcorp.com>2020-09-28 17:49:57 -0500
committerJoel Sherrill <joel@rtems.org>2020-09-29 07:59:31 -0500
commitfdbe9b75994e90c71ee38212ec2d6867c9fa9b01 (patch)
treed7c6b8e8c004e87504523475556650be22b613a7
parentFixing bug in line editing of the shell with CTRL-U. (diff)
downloadrtems-fdbe9b75994e90c71ee38212ec2d6867c9fa9b01.tar.bz2
rtems-bsps: add ability to print architecture/bsp list
Closes #4099.
-rwxr-xr-xrtems-bsps43
1 files changed, 40 insertions, 3 deletions
diff --git a/rtems-bsps b/rtems-bsps
index 82c5150969..bc8e0448ac 100755
--- a/rtems-bsps
+++ b/rtems-bsps
@@ -262,6 +262,34 @@ class ArchBsps:
else:
self._out('%-*s |%s' % (max_bsp, bsp, family))
+ def pairs(self, arch_selector=None, family_selector=None, show_path=False):
+ """Generate output as pairs"""
+ self._clear()
+ max_arch = self._max_arch_len()
+ max_bsp = self._max_bsp_len()
+ if arch_selector is None:
+ arch_matcher = []
+ else:
+ arch_matcher = [a.strip() for a in arch_selector.split(',')]
+ if family_selector is None:
+ family_matcher = []
+ else:
+ family_matcher = [f.strip() for f in family_selector.split(',')]
+ for arch in sorted(self.archs.keys()):
+ if arch_selector is None or arch in arch_matcher:
+ for family in sorted(self.archs[arch].keys()):
+ if family_selector is None or family in family_matcher:
+ for bsp in sorted(self.archs[arch][family].keys()):
+ if show_path:
+ p = os.path.join('bsps',
+ self.archs[arch][family][bsp])
+ pair = arch + '/' + bsp
+ pair = '%-*s %s' % (max_arch + max_bsp + 1, pair, p)
+
+ self._out(pair)
+ else:
+ self._out('%s/%s' % (arch, bsp))
+
def run(args):
"""Runs the command"""
@@ -294,6 +322,10 @@ def run(args):
'--trace',
help='Verbose or trace for debugging',
action='store_true')
+ argsp.add_argument('-P',
+ '--pairs',
+ help='Output architectures and BSPs in CPU/BSP format',
+ action='store_true')
argopts = argsp.parse_args(args[1:])
@@ -309,9 +341,14 @@ def run(args):
show_path=argopts.paths,
show_title=argopts.title)
else:
- ab.text(arch_selector=argopts.arch,
- family_selector=argopts.family,
- show_path=argopts.paths)
+ if argopts.pairs:
+ ab.pairs(arch_selector=argopts.arch,
+ family_selector=argopts.family,
+ show_path=argopts.paths)
+ else:
+ ab.text(arch_selector=argopts.arch,
+ family_selector=argopts.family,
+ show_path=argopts.paths)
print(os.linesep.join(ab.output()))