Rename all *Indexer classeds to PkgIndexer to enable dynamic calling.

Signed-off-by: Fredrik Gustafsson <fredr...@axis.com>
---
 meta/lib/oe/package_manager.py                | 22 +++++--------------
 .../package_managers/deb/package_manager.py   |  8 +++++--
 .../package_managers/ipk/package_manager.py   |  7 ++++--
 .../package_managers/rpm/package_manager.py   |  5 ++++-
 4 files changed, 20 insertions(+), 22 deletions(-)

diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index 111845d903..bfddbce93c 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -149,8 +149,6 @@ class Indexer(object, metaclass=ABCMeta):
     def write_index(self):
         pass
 
-
-
 class PkgsList(object, metaclass=ABCMeta):
     def __init__(self, d, rootfs_dir):
         self.d = d
@@ -576,22 +574,12 @@ def create_packages_dir(d, subrepo_dir, deploydir, 
taskname, filterbydependencie
                         raise
 
 def generate_index_files(d):
-    classes = d.getVar('PACKAGE_CLASSES').replace("package_", "").split()
-
-    indexer_map = {
-        "rpm": (RpmSubdirIndexer, d.getVar('DEPLOY_DIR_RPM')),
-        "ipk": (OpkgIndexer, d.getVar('DEPLOY_DIR_IPK')),
-        "deb": (DpkgIndexer, d.getVar('DEPLOY_DIR_DEB'))
-    }
-
+    classes = d.getVar('PACKAGE_CLASSES').split()
     result = None
 
     for pkg_class in classes:
-        if not pkg_class in indexer_map:
-            continue
-
-        if os.path.exists(indexer_map[pkg_class][1]):
-            result = indexer_map[pkg_class][0](d, 
indexer_map[pkg_class][1]).write_index()
+        import importlib
+        result = importlib.import_module('oe.package_managers.' + classes + 
'.manifest').PkgIndexer(d).write_index()
 
-            if result is not None:
-                bb.fatal(result)
+        if result is not None:
+            bb.fatal(result)
diff --git a/meta/lib/oe/package_managers/deb/package_manager.py 
b/meta/lib/oe/package_managers/deb/package_manager.py
index 5d3c300700..0dc4004f66 100644
--- a/meta/lib/oe/package_managers/deb/package_manager.py
+++ b/meta/lib/oe/package_managers/deb/package_manager.py
@@ -94,7 +94,7 @@ class PkgPM(OpkgDpkgPM):
 
         self._create_configs(archs, base_archs)
 
-        self.indexer = DpkgIndexer(self.d, self.deploy_dir)
+        self.indexer = PkgIndexer(self.d, self.deploy_dir)
 
     def mark_packages(self, status_tag, packages=None):
         """
@@ -400,7 +400,7 @@ class PkgPM(OpkgDpkgPM):
         return tmp_dir
 
 
-class DpkgIndexer(Indexer):
+class PkgIndexer(Indexer):
     def _create_configs(self):
         bb.utils.mkdirhier(self.apt_conf_dir)
         bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "lists", "partial"))
@@ -423,6 +423,10 @@ class DpkgIndexer(Indexer):
                     apt_conf.write(line + "\n")
 
     def write_index(self):
+        if self.deploy_dir == "":
+            self.deploy_dir = self.d.getVar('DEPLOY_DIR_DEB')
+
+
         self.apt_conf_dir = os.path.join(self.d.expand("${APTCONF_TARGET}"),
                 "apt-ftparchive")
         self.apt_conf_file = os.path.join(self.apt_conf_dir, "apt.conf")
diff --git a/meta/lib/oe/package_managers/ipk/package_manager.py 
b/meta/lib/oe/package_managers/ipk/package_manager.py
index 8abc6c1c98..133af27182 100644
--- a/meta/lib/oe/package_managers/ipk/package_manager.py
+++ b/meta/lib/oe/package_managers/ipk/package_manager.py
@@ -106,7 +106,7 @@ class PkgPM(OpkgDpkgPM):
         else:
             self._create_config()
 
-        self.indexer = OpkgIndexer(self.d, self.deploy_dir)
+        self.indexer = PkgIndexer(self.d, self.deploy_dir)
 
     def mark_packages(self, status_tag, packages=None):
         """
@@ -423,8 +423,11 @@ class PkgPM(OpkgDpkgPM):
 
         return tmp_dir
 
-class OpkgIndexer(Indexer):
+class PkgIndexer(Indexer):
     def write_index(self):
+        if self.deploy_dir == "":
+            self.deploy_dir = self.d.getVar('DEPLOY_DIR_IPK')
+
         arch_vars = ["ALL_MULTILIB_PACKAGE_ARCHS",
                      "SDK_PACKAGE_ARCHS",
                      ]
diff --git a/meta/lib/oe/package_managers/rpm/package_manager.py 
b/meta/lib/oe/package_managers/rpm/package_manager.py
index 025e8cdfd2..e781676183 100644
--- a/meta/lib/oe/package_managers/rpm/package_manager.py
+++ b/meta/lib/oe/package_managers/rpm/package_manager.py
@@ -384,8 +384,11 @@ class RpmIndexer(Indexer):
                                
self.d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE'),
                                armor=is_ascii_sig)
 
-class RpmSubdirIndexer(RpmIndexer):
+class PkgIndexer(RpmIndexer):
     def write_index(self):
+        if self.deploy_dir == "":
+            self.deploy_dir = self.d.getVar('DEPLOY_DIR_RPM')
+
         bb.note("Generating package index for %s" %(self.deploy_dir))
         self.do_write_index(self.deploy_dir)
         for entry in os.walk(self.deploy_dir):
-- 
2.20.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#139933): 
https://lists.openembedded.org/g/openembedded-core/message/139933
Mute This Topic: https://lists.openembedded.org/mt/75100016/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to