add 'extras' mechanism to OTA and signing tools
Add the -x option which allows arbitrary key-value pairs to be passed
into the device-specific module for doing signing and OTA packaging.
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index 27264dd..041daf4 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -35,6 +35,7 @@
OPTIONS.verbose = False
OPTIONS.tempfiles = []
OPTIONS.device_specific = None
+OPTIONS.extras = {}
class ExternalError(RuntimeError): pass
@@ -259,6 +260,10 @@
Path to the python module containing device-specific
releasetools code.
+ -x (--extra) <key=value>
+ Add a key/value pair to the 'extras' dict, which device-specific
+ extension code may look at.
+
-v (--verbose)
Show command lines being executed.
@@ -283,8 +288,8 @@
try:
opts, args = getopt.getopt(
- argv, "hvp:s:" + extra_opts,
- ["help", "verbose", "path=", "device_specific="] +
+ argv, "hvp:s:x:" + extra_opts,
+ ["help", "verbose", "path=", "device_specific=", "extra="] +
list(extra_long_opts))
except getopt.GetoptError, err:
Usage(docstring)
@@ -303,6 +308,9 @@
OPTIONS.search_path = a
elif o in ("-s", "--device_specific"):
OPTIONS.device_specific = a
+ elif o in ("-x" "--extra"):
+ key, value = a.split("=", 1)
+ OPTIONS.extras[key] = value
else:
if extra_option_handler is None or not extra_option_handler(o, a):
assert False, "unknown option \"%s\"" % (o,)
@@ -437,6 +445,7 @@
module."""
for k, v in kwargs.iteritems():
setattr(self, k, v)
+ self.extras = OPTIONS.extras
if self.module is None:
path = OPTIONS.device_specific