about summary refs log tree commit diff
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2017-02-16 16:57:35 -0500
committerZack Weinberg <zackw@panix.com>2017-02-16 19:04:11 -0500
commitf0166c1643038e0ca42d300ddae36c00f400f4cf (patch)
tree5195821eda43d6bc8e2429a07d33761f1ba10c30
parentceaa98897cb717685bb3b51a81d733b64340bb19 (diff)
downloadglibc-f0166c1643038e0ca42d300ddae36c00f400f4cf.tar.gz
glibc-f0166c1643038e0ca42d300ddae36c00f400f4cf.tar.xz
glibc-f0166c1643038e0ca42d300ddae36c00f400f4cf.zip
build-many-glibcs: don't crash if email is not configured
The 'bot-cycle' action for build-many-glibcs is a convenient way to
not have to remember all the steps in keeping a many-glibcs tree up
to date ... or it would be, if the script could send mail _optionally_.
Make it so by skipping the mail step if mail isn't configured.

	* scripts/build-many-glibcs.py (bot_build_mail):  If the
	bot_config does not contain all of the necessary email-
	related settings, just print a warning and continue.
-rw-r--r--ChangeLog6
-rwxr-xr-xscripts/build-many-glibcs.py10
2 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 514753d9ec..17f9b165e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2017-02-16  Zack Weinberg  <zackw@panix.com>
 
+	* scripts/build-many-glibcs.py (bot_build_mail): If the
+	bot_config does not contain all of the necessary email-
+	related settings, just print a warning and continue.
+
+2017-02-16  Zack Weinberg  <zackw@panix.com>
+
 	* crypt/md5.h: Test _LIBC with #if defined, not #if.
 	* dirent/opendir-tst1.c: Include sys/stat.h.
 	* dirent/tst-fdopendir.c: Include sys/stat.h.
diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
index d2947e676b..4f724ced6f 100755
--- a/scripts/build-many-glibcs.py
+++ b/scripts/build-many-glibcs.py
@@ -122,6 +122,7 @@ class Context(object):
         self.load_versions_json()
         self.load_build_state_json()
         self.status_log_list = []
+        self.email_warning = False
 
     def get_script_text(self):
         """Return the text of this script."""
@@ -1003,6 +1004,15 @@ class Context(object):
 
     def bot_build_mail(self, action, build_time):
         """Send email with the results of a build."""
+        if not ('email-from' in self.bot_config and
+                'email-server' in self.bot_config and
+                'email-subject' in self.bot_config and
+                'email-to' in self.bot_config):
+            if not self.email_warning:
+                print("Email not configured, not sending.")
+                self.email_warning = True
+            return
+
         build_time = build_time.replace(microsecond=0)
         subject = (self.bot_config['email-subject'] %
                    {'action': action,