buildpackage-rpm: implement --[no-]hooks option
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Tue, 23 Apr 2013 12:45:38 +0000 (15:45 +0300)
committerMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Fri, 14 Nov 2014 12:46:24 +0000 (14:46 +0200)
For enabling/disabling all hooks, similar to git-buildpackage (the
Debian tool). Does not affedt the builder.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
gbp/scripts/buildpackage_rpm.py

index ae4e494..56c6b89 100755 (executable)
@@ -319,6 +319,14 @@ def create_packaging_tag(repo, tag, commit, version, options):
                     keyid=options.keyid, commit=commit)
 
 
+def disable_hooks(options):
+    """Disable all hooks (except for builder)"""
+    for hook in ['cleaner', 'postexport', 'prebuild', 'postbuild', 'posttag']:
+        if getattr(options, hook):
+            gbp.log.info("Disabling '%s' hook" % hook)
+            setattr(options, hook, '')
+
+
 def parse_args(argv, prefix, git_treeish=None):
     args = [ arg for arg in argv[1:] if arg.find('--%s' % prefix) == 0 ]
     builder_args = [ arg for arg in argv[1:] if arg.find('--%s' % prefix) == -1 ]
@@ -395,6 +403,7 @@ def parse_args(argv, prefix, git_treeish=None):
                       help="hook run after a successful build, default is '%(postbuild)s'")
     cmd_group.add_config_file_option(option_name="posttag", dest="posttag",
                       help="hook run after a successful tag operation, default is '%(posttag)s'")
+    cmd_group.add_boolean_config_file_option(option_name="hooks", dest="hooks")
     export_group.add_config_file_option(option_name="export-dir", dest="export_dir", type="path",
                       help="Build topdir, also export the sources under EXPORT_DIR, default is '%(export-dir)s'")
     export_group.add_config_file_option(option_name="rpmbuild-builddir", dest="build_dir", type="path",
@@ -428,6 +437,8 @@ def parse_args(argv, prefix, git_treeish=None):
     options.patch_export_compress = rpm.string_to_int(options.patch_export_compress)
 
     gbp.log.setup(options.color, options.verbose, options.color_scheme)
+    if not options.hooks:
+        disable_hooks(options)
     if options.retag:
         if not options.tag and not options.tag_only:
             gbp.log.err("'--%sretag' needs either '--%stag' or '--%stag-only'" % (prefix, prefix, prefix))