OSDN Git Service

ignore missing/bad device-specific releasetools modules
authorDoug Zongker <dougz@android.com>
Wed, 24 Jun 2009 21:34:57 +0000 (14:34 -0700)
committerDoug Zongker <dougz@android.com>
Wed, 24 Jun 2009 21:34:57 +0000 (14:34 -0700)
If we fail to load the device-specific releasetools module (ie, if -s
is specified but the file is missing), issue an error message but
continue without any device-specific code.

tools/releasetools/common.py

index 033e80e..4174db5 100644 (file)
@@ -432,17 +432,18 @@ class DeviceSpecificParams(object):
     if self.module is None:
       path = OPTIONS.device_specific
       if path is None: return
-      if os.path.isdir(path):
-        info = imp.find_module("releasetools", [path])
-      else:
-        d, f = os.path.split(path)
-        b, x = os.path.splitext(f)
-        if x == ".py":
-          f = b
-        info = imp.find_module(f, [d])
-      if not info or info[0] is None:
-        raise ValueError("unable to find device-specific module")
-      self.module = imp.load_module("device_specific", *info)
+      try:
+        if os.path.isdir(path):
+          info = imp.find_module("releasetools", [path])
+        else:
+          d, f = os.path.split(path)
+          b, x = os.path.splitext(f)
+          if x == ".py":
+            f = b
+          info = imp.find_module(f, [d])
+        self.module = imp.load_module("device_specific", *info)
+      except ImportError:
+        print "unable to load device-specific module; assuming none"
 
   def _DoCall(self, function_name, *args, **kwargs):
     """Call the named function in the device-specific module, passing