commit 8ca483989a4f8b86153c12c576d7683bc3004325
parent 0b16e6b79ff7319b967c445bc459a84d4757df3a
Author: parazyd <parazyd@dyne.org>
Date:   Thu,  6 Jul 2017 17:43:16 +0200
refactor merge() to be able to merge any number of repos properly
Diffstat:
1 file changed, 26 insertions(+), 26 deletions(-)
diff --git a/amprolla_merge.py b/amprolla_merge.py
@@ -75,34 +75,34 @@ def merge(packages_list):
     all_repos = []
     print('Loading packages: %s' % packages_list)
 
-    devuan = load_packages_file(packages_list[0])
-    if devuan:
-        all_repos.append({'name': 'devuan', 'packages': devuan})
-
-    debian_sec = load_packages_file(packages_list[1])
-    if debian_sec:
-        all_repos.append({'name': 'debian-security', 'packages': debian_sec})
-
-    debian = load_packages_file(packages_list[2])
-    if debian:
-        all_repos.append({'name': 'debian', 'packages': debian})
-
-    if basename(packages_list[0]) == 'Packages.gz':
-        print('Merging packages')
-        src = False
-        new_pkgs = merge_packages_many(all_repos, banned_packages=banpkgs,
-                                       rewriter=devuan_rewrite)
-    elif basename(packages_list[0]) == 'Sources.gz':
-        print('Merging sources')
-        src = True
-        new_pkgs = merge_packages_many(all_repos, rewriter=devuan_rewrite)
+    for i in range(len(repo_order)):
+        pkgs = load_packages_file(packages_list[i])
+        if pkgs:
+            all_repos.append({'name': repo_order[i], 'packages': pkgs})
+
+    for i in range(len(repo_order)):
+        if packages_list[i]:
+            if basename(packages_list[i]) == 'Packages.gz':
+                print('Merging packages')
+                src = False
+                new_pkgs = merge_packages_many(all_repos,
+                                               banned_packages=banpkgs,
+                                               rewriter=devuan_rewrite)
+            elif basename(packages_list[i]) == 'Sources.gz':
+                print('Merging sources')
+                src = True
+                new_pkgs = merge_packages_many(all_repos,
+                                               rewriter=devuan_rewrite)
+            break
 
     print('Writing packages')
-    # replace the devuan subdir with our mergedir that we plan to fill
-    # FIXME: do not assume Devuan always exists
-    new_out = packages_list[0].replace(join(spooldir,
-                                            repos['devuan']['dists']),
-                                       join(mergedir, mergesubdir))
+    for i in range(len(repo_order)):
+        if packages_list[i]:
+            new_out = packages_list[i].replace(join(spooldir,
+                                                       repos[repo_order[i]]['dists']),
+                                                  join(mergedir, mergesubdir))
+            break
+
     if src:
         write_packages(new_pkgs, new_out, sources=True)
     else: