phase1: factor out populateTargetsForBranch
authorPetr Štetiar <ynezz@true.cz>
Sat, 1 Jun 2024 11:21:23 +0000 (11:21 +0000)
committerPetr Štetiar <ynezz@true.cz>
Sat, 1 Jun 2024 11:21:23 +0000 (11:21 +0000)
Going to make builders (build targets) configurable, so lets factor
current populateTargets into separate function populateTargetsForBranch
which takes a branch as argument. No functional changes.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
phase1/master.cfg

index 4e7cbc109152bb953f84e614904ed731ef842a90..970f7f91b5c4437b98707bca52dbc9989f1d76d8 100644 (file)
@@ -300,48 +300,53 @@ targets = dict()
 
 
 def populateTargets():
-    """fetch a shallow clone of each configured branch in turn:
-    execute dump-target-info.pl and collate the results to ensure
+    for branch in branchNames:
+        populateTargetsForBranch(branch)
+
+
+def populateTargetsForBranch(branch):
+    """fetches a shallow clone for passed `branch` and then
+    executes dump-target-info.pl and collates the results to ensure
     targets that only exist in specific branches get built.
     This takes a while during master startup but is executed only once.
     """
+    targets[branch] = set()
     sourcegit = work_dir + "/source.git"
-    for branch in branchNames:
-        log.msg(f"Populating targets for {branch}, this will take time")
-
-        if os.path.isdir(sourcegit):
-            subprocess.call(["rm", "-rf", sourcegit])
-
-        subprocess.call(
-            [
-                "git",
-                "clone",
-                "-q",
-                "--depth=1",
-                "--branch=" + branch,
-                repo_url,
-                sourcegit,
-            ]
-        )
-
-        os.makedirs(sourcegit + "/tmp", exist_ok=True)
-        findtargets = subprocess.Popen(
-            ["./scripts/dump-target-info.pl", "targets"],
-            stdout=subprocess.PIPE,
-            stderr=subprocess.DEVNULL,
-            cwd=sourcegit,
-        )
 
-        targets[branch] = set()
-        while True:
-            line = findtargets.stdout.readline()
-            if not line:
-                break
-            ta = line.decode().strip().split(" ")
-            targets[branch].add(ta[0])
+    log.msg(f"Populating targets for {branch}, this will take time")
 
+    if os.path.isdir(sourcegit):
         subprocess.call(["rm", "-rf", sourcegit])
 
+    subprocess.call(
+        [
+            "git",
+            "clone",
+            "-q",
+            "--depth=1",
+            "--branch=" + branch,
+            repo_url,
+            sourcegit,
+        ]
+    )
+
+    os.makedirs(sourcegit + "/tmp", exist_ok=True)
+    findtargets = subprocess.Popen(
+        ["./scripts/dump-target-info.pl", "targets"],
+        stdout=subprocess.PIPE,
+        stderr=subprocess.DEVNULL,
+        cwd=sourcegit,
+    )
+
+    while True:
+        line = findtargets.stdout.readline()
+        if not line:
+            break
+        ta = line.decode().strip().split(" ")
+        targets[branch].add(ta[0])
+
+    subprocess.call(["rm", "-rf", sourcegit])
+
 
 populateTargets()