summaryrefslogtreecommitdiffstats
path: root/bin/reproducible_setup_notify.py
diff options
context:
space:
mode:
authorMattia Rizzolo <mattia@mapreri.org>2015-05-28 22:11:40 +0200
committerHolger Levsen <holger@layer-acht.org>2015-05-29 16:24:59 +0200
commit91fe81a82a3facd23d3a59c4d43bff7dffbbca77 (patch)
tree3e8ef75fbbecd812787046bf12e21e6795e9d50c /bin/reproducible_setup_notify.py
parent39ba6b7ee28c4b72e776b843f6fd5aefbef97960 (diff)
downloadjenkins.debian.net-91fe81a82a3facd23d3a59c4d43bff7dffbbca77.tar.xz
reproducible: add a reproducible_setup_notify.py script, to being able to ease the flag change. For now allows only list of packages
Diffstat (limited to 'bin/reproducible_setup_notify.py')
-rwxr-xr-xbin/reproducible_setup_notify.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/bin/reproducible_setup_notify.py b/bin/reproducible_setup_notify.py
new file mode 100755
index 00000000..80ef9a63
--- /dev/null
+++ b/bin/reproducible_setup_notify.py
@@ -0,0 +1,67 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+#
+# Copyright © 2015 Mattia Rizzolo <mattia@mapreri.org>
+# Licensed under GPL-2
+#
+# Depends: python3
+#
+# Choose which packages should trigger an email to the maintainer when the
+# reproducibly status change
+
+import argparse
+
+parser = argparse.ArgumentParser(
+ description='Choose which packages should trigger an email to the ' +
+ 'maintainer when the reproducibly status change',
+ epilog='The build results will be announced on the #debian-reproducible' +
+ ' IRC channel.')
+group = parser.add_mutually_exclusive_group()
+parser.add_argument('-o', '--deactivate', action='store_true',
+ help='Deactivate the notifications')
+group.add_argument('-p', '--packages', default='', nargs='+',
+ help='list of packages for which activate notifications')
+local_args = parser.parse_known_args()[0]
+
+# these are here as an hack to be able to parse the command line
+from reproducible_common import *
+
+
+class bcolors:
+ BOLD = '\033[1m'
+ UNDERLINE = '\033[4m'
+ GOOD = '\033[92m'
+ WARN = '\033[93m' + UNDERLINE
+ FAIL = '\033[91m' + BOLD + UNDERLINE
+ ENDC = '\033[0m'
+
+packages = local_args.packages
+
+if not packages:
+ log.critical(bcolors.FAIL + 'You have to specify at least a package' +
+ bcolors.ENDC)
+
+def _good(text):
+ log.info(bcolors.GOOD + str(text) + bcolors.ENDC)
+
+c = conn_db.cursor()
+
+for package in packages:
+ if local_args.deactivate:
+ _good('Deactovating notification for package ' + str(package))
+ flag = 0
+ else:
+ _good('Activating notification for package ' + str(package))
+ flag = 1
+ rows = c.execute(('UPDATE OR FAIL sources SET notify_maintainer="{}" ' +
+ 'WHERE name="{}"').format(flag, package)).rowcount
+ conn_db.commit()
+ if rows == 0:
+ log.error(bcolors.FAIL + str(package) + ' does not exists')
+ sys.exit(1)
+ if DEBUG:
+ log.debug('Double check the change:')
+ query = 'SELECT * FROM sources WHERE name="{}"'.format(package)
+ log.debug(query_db(query))
+
+