diff options
author | Ryan Long <ryan.long@oarcorp.com> | 2020-09-28 17:49:57 -0500 |
---|---|---|
committer | Joel Sherrill <joel@rtems.org> | 2020-09-29 07:59:31 -0500 |
commit | fdbe9b75994e90c71ee38212ec2d6867c9fa9b01 (patch) | |
tree | d7c6b8e8c004e87504523475556650be22b613a7 | |
parent | Fixing bug in line editing of the shell with CTRL-U. (diff) | |
download | rtems-fdbe9b75994e90c71ee38212ec2d6867c9fa9b01.tar.bz2 |
rtems-bsps: add ability to print architecture/bsp list
Closes #4099.
-rwxr-xr-x | rtems-bsps | 43 |
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())) |