# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
+
+"""
+patchset-created hook entry module
+"""
+
import os
import sys
import argparse
-import ConfigParser
-
-from misc import find_config, configure_logging, daemonize
-from pkg_resources import iter_entry_points
+from gerrithooks.misc import configure_logging
+from gerrithooks.common import run_plugin_hooks
def parse_cmdline(argv):
"""Parse hook command line parameters."""
def main():
+ """ patchset-created hook entry """
# get parameters from command line
params = parse_cmdline(sys.argv[1:])
# set up logger
logger = configure_logging(os.path.basename(sys.argv[0]))
-
logger.info("patchset-created: project %s : branch %s, commit %s, change: "\
"%s (draft: %s url: %s) topic: %s uploader: %s patchset: %s",
- params.project, params.branch, params.commit, params.change,
- params.is_draft, params.change_url, params.topic,
+ params.project, params.branch, params.commit, params.change,
+ params.is_draft, params.change_url, params.topic,
params.uploader, params.patchset)
- if not params.debug:
- logger.debug("Daemonizing...")
- daemonize()
-
- logger.debug("looking for config")
- confname = "gerrit-hooks.conf"
- conf = find_config(confname, subdir="gerrit-hooks")
- if not conf:
- logger.error("Log configuration file %s not found or not readable" \
- % confname)
- return 1
-
- # read rules from configuration file
- config = ConfigParser.RawConfigParser()
- config.optionxform = str
-
- logger.debug("main: reading config from %s", conf)
- config.read(conf)
-
- entry_point_group = "gerrit-hooks"
- logger.debug("main: looking for plugins in entry %s" % entry_point_group)
-
- for entry_point in iter_entry_points(group=entry_point_group, name="patchset-created"):
- logger.debug("Loading plugin %s from %s" %
- (entry_point.name, entry_point.module))
- plugin = entry_point.load()
- logger.debug("Executing plugin %s" % entry_point.name)
- plugin(params=params, config=config)
- logger.info("done")
- return 0
+ return run_plugin_hooks("patchset-created", params, logger)
if __name__ == "__main__":
sys.exit(main())