[rtems commit] rtems-bsps: add ability to print architecture/bsp list

Joel Sherrill joel at rtems.org
Tue Sep 29 12:59:38 UTC 2020


Module:    rtems
Branch:    5
Commit:    fdbe9b75994e90c71ee38212ec2d6867c9fa9b01
Changeset: http://git.rtems.org/rtems/commit/?id=fdbe9b75994e90c71ee38212ec2d6867c9fa9b01

Author:    Ryan Long <ryan.long at oarcorp.com>
Date:      Mon Sep 28 17:49:57 2020 -0500

rtems-bsps: add ability to print architecture/bsp list

Closes #4099.

---

 rtems-bsps | 43 ++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 40 insertions(+), 3 deletions(-)

diff --git a/rtems-bsps b/rtems-bsps
index 82c5150..bc8e044 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()))
 



More information about the vc mailing list