handle extra arguments for command line parsers
authorAlexander Kanevskiy <alexander.kanevskiy@intel.com>
Tue, 13 Aug 2013 11:25:16 +0000 (14:25 +0300)
committerAlexander Kanevskiy <alexander.kanevskiy@intel.com>
Tue, 13 Aug 2013 11:25:16 +0000 (14:25 +0300)
gerrithooks/common.py

index a5141677bf03be3d42b426cc87256260e96243d2..8e17fd98c9b2a00de1d2dabbca38eb1541ee2779 100644 (file)
@@ -20,6 +20,7 @@ Common code to run hooks from plugins
 """
 import os
 import sys
+import types
 import ConfigParser
 
 from gerrithooks.misc import find_config, configure_logging, daemonize
@@ -36,6 +37,10 @@ def run_plugin_hooks(hook, parser):
 
     # get parameters from command line
     params = parser(sys.argv[1:])
+    if isinstance(params, type.TupleType):
+        params, extra_params = params
+    else:
+        extra_params = None
 
     params_keys = sorted([ key for key in dir(params)
                     if not (key.startswith("_") or key =="debug") ])
@@ -70,7 +75,7 @@ def run_plugin_hooks(hook, parser):
             entry_point.name, entry_point.module)
         plugin = entry_point.load()
         logger.debug("Executing plugin %s", entry_point.name)
-        plugin(hook=hook, params=params, config=config)
+        plugin(hook=hook, params=params, config=config, extra=extra_params)
 
     logger.info("done")
     return 0