Explorar o código

add switches for bootloader/bsp recursion

Tobias Simetsreiter %!s(int64=5) %!d(string=hai) anos
pai
achega
f19c839a6d
Modificáronse 1 ficheiros con 23 adicións e 13 borrados
  1. 23 13
      abe_setup.py

+ 23 - 13
abe_setup.py

@@ -15,17 +15,16 @@ def main():
 
     count_submodules = 0
 
-    url = sane_origin_url( args.source_url, args.output_dir )
-
-    sub = AbeSubmodule([args.output_dir, url.geturl(), args.tag], AbeSubType.SUBMODULE)
-
     last_parent = None
     jobs = []
 
     if args.abe_command:
         executeAbeCommand( args.output_dir, args.abe_command )
     else:
-        for sub in abe_submodules( args.output_dir, args.source_url, args.tag):
+        for sub in abe_submodules(
+            args.output_dir, args.source_url, args.tag,
+                recurse_bsps=args.recurse_bsps,
+                recurse_bootloaders=args.recurse_bootloaders ):
             count_submodules += 1
             if DEBUG > 0:
                 print("Count:",count_submodules)
@@ -81,6 +80,12 @@ def parser():
     p.add_argument('-s', '--source_url',
                    default=None,
                    help='url to be used for origin remote')
+    p.add_argument('--recurse_bootloaders',
+                   action='store_true',
+                   help='also recurse into .abe/bootloaders')
+    p.add_argument('--recurse_bsps',
+                   action='store_true',
+                   help='also recurse into .abe/bsps')
     p.add_argument('-a', '--abe_command',
                    default=None,
                    help="execute an ABE command in output_dir")
@@ -101,18 +106,18 @@ def executeAbeCommand( repo_path, command_name ):
             print(commandFileRel, 'in', repo_path, 'returned exitcode', err.returncode)
 
 
-def abe_submodules(path, remote, ref, parent=None):
+def abe_submodules(path, remote, ref, **kwargs):
     url = sane_origin_url( remote, path )
 
     sub = AbeSubmodule([path, url.geturl(), ref], AbeSubType.SUBMODULE)
     yield sub
-    for s in recurse_abe_submodules(sub):
+    for s in recurse_abe_submodules(sub, **kwargs):
         yield s
 
 
-def recurse_abe_submodules(parent):
+def recurse_abe_submodules(parent, **kwargs):
 
-    subm = get_abe_subtree( parent.fullpath )
+    subm = get_abe_subtree( parent.fullpath, **kwargs)
 
     acc = []
     last = None
@@ -165,7 +170,7 @@ class ProgressPrinter(RemoteProgress):
         if DEBUG:
             cur_count_int = round(cur_count)
             if not max_count:
-                div = f"cur_count_int/?"
+                div = f"{cur_count_int}/?"
                 perc = '??%'
             else:
                 max_count_int = round(max_count)
@@ -314,13 +319,18 @@ class AbeSubmodule():
     def clone_repo(self, cache_dir=None, fetch_origin=True):
         return clone_repo_cached( self, cache_dir=cache_dir, fetch_origin=fetch_origin)
 
-def get_abe_subtree(repo_dir):
+def get_abe_subtree(repo_dir, recurse_bsps=False, recurse_bootloaders=False):
     import itertools
     subfile_generators = [
         get_abe_submodules(repo_dir),
-        get_abe_bootloaders(repo_dir),
-        get_abe_bsps(repo_dir),
     ]
+
+    if recurse_bootloaders:
+        subfile_generators.append(get_abe_bootloaders(repo_dir))
+
+    if recurse_bsps:
+        subfile_generators.append(get_abe_bsps(repo_dir))
+
     return itertools.chain(*subfile_generators)
 
 def get_abe_bsps(repo_dir):