[PATCH 1/2] Pass the config object into the multilib method objects.

Ralph Bean rbean at redhat.com
Wed Jul 16 16:59:24 UTC 2014


---
 mash/__init__.py | 18 ++++++++++--------
 mash/multilib.py | 25 ++++++++++++++-----------
 2 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/mash/__init__.py b/mash/__init__.py
index 566b8c1..8acbf1e 100644
--- a/mash/__init__.py
+++ b/mash/__init__.py
@@ -451,14 +451,16 @@ class Mash:
         do_multi = self.config.multilib
         
         try:
-            method = { 'base'    : multilib.MultilibMethod,
-                       'devel'   : multilib.DevelMultilibMethod,
-                       'file'    : multilib.FileMultilibMethod,
-                       'kernel'  : multilib.KernelMultilibMethod,
-                       'yaboot'  : multilib.YabootMultilibMethod,
-                       'all'     : multilib.AllMultilibMethod,
-                       'none'    : multilib.NoMultilibMethod,
-                       'runtime' : multilib.RuntimeMultilibMethod}[self.config.multilib_method](self.config.multilib_file)
+            method = {
+                'base'    : multilib.MultilibMethod,
+                'devel'   : multilib.DevelMultilibMethod,
+                'file'    : multilib.FileMultilibMethod,
+                'kernel'  : multilib.KernelMultilibMethod,
+                'yaboot'  : multilib.YabootMultilibMethod,
+                'all'     : multilib.AllMultilibMethod,
+                'none'    : multilib.NoMultilibMethod,
+                'runtime' : multilib.RuntimeMultilibMethod
+            }[self.config.multilib_method](self.config)
         except KeyError:
             self.logger.error("Invalid multilib method %s" % (self.config.multilib_method,))
             do_multi = False
diff --git a/mash/multilib.py b/mash/multilib.py
index f2594b0..57f53f8 100644
--- a/mash/multilib.py
+++ b/mash/multilib.py
@@ -14,7 +14,7 @@
 from fnmatch import fnmatch
 
 class MultilibMethod:
-    def __init__(self, dummy):
+    def __init__(self, config):
         self.name = 'base'
     def select(self, po):
         prefer_64 = [ 'gdb', 'frysk', 'systemtap', 'systemtap-runtime', 'ltrace', 'strace' ]
@@ -28,21 +28,22 @@ class MultilibMethod:
         return False
 
 class NoMultilibMethod:
-    def __init__(self, dummy):
+    def __init__(self, config):
         self.name = 'none'
-        
+
     def select(self, po):
         return False
 
 class AllMultilibMethod(MultilibMethod):
-    def __init__(self, dummy):
+    def __init__(self, config):
         self.name = 'all'
-    
+
     def select(self, po):
         return True
     
 class FileMultilibMethod(MultilibMethod):
-    def __init__(self, file):
+    def __init__(self, config):
+        file = config.multilib_file
         self.name = 'file'
         self.list = []
         if file:
@@ -61,8 +62,9 @@ class FileMultilibMethod(MultilibMethod):
         return False
 
 class KernelMultilibMethod:
-    def __init__(self, dummy):
+    def __init__(self, config):
         self.name = 'base'
+
     def select(self, po):
         if po.arch.find('64') != -1:
             if po.name.startswith('kernel'):
@@ -72,8 +74,9 @@ class KernelMultilibMethod:
         return False
 
 class YabootMultilibMethod:
-    def __init__(self, dummy):
+    def __init__(self, config):
         self.name = 'base'
+
     def select(self, po):
         if po.arch in ['ppc'] :
             if po.name.startswith('yaboot'):
@@ -81,9 +84,9 @@ class YabootMultilibMethod:
         return False
 
 class RuntimeMultilibMethod(MultilibMethod):
-    def __init__(self, dummy):
+    def __init__(self, config):
         self.name = 'runtime'
-    
+
     def select(self, po):
         libdirs = [ '/usr/lib', '/usr/lib64', '/lib', '/lib64' ]
         blacklist = [ 'tomcat-native' ]
@@ -181,7 +184,7 @@ class RuntimeMultilibMethod(MultilibMethod):
         return False
 
 class DevelMultilibMethod(RuntimeMultilibMethod):
-    def __init__(self, dummy):
+    def __init__(self, config):
         self.name = 'devel'
     
     def select(self, po):
-- 
1.9.3



More information about the rel-eng mailing list