Эх сурвалжийг харах

patman: Fix error when the email blacklist is missing

This section of the settings file may be missing. Handle that gracefully
rather than emitting an error.

Also update patman to write this section when a new settings file is
created.

Fixes: e11aa602 (patman: add support for omitting bouncing addresses)

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Chris Packham <judge.pckham@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Simon Glass 7 жил өмнө
parent
commit
ad8931400b

+ 25 - 3
tools/patman/settings.py

@@ -212,7 +212,12 @@ def CreatePatmanConfigFile(config_fname):
         print("Couldn't create patman config file\n")
         print("Couldn't create patman config file\n")
         raise
         raise
 
 
-    print("[alias]\nme: %s <%s>" % (name, email), file=f)
+    print('''[alias]
+me: %s <%s>
+
+[bounces]
+nxp = Zhikang Zhang <zhikang.zhang@nxp.com>
+''' % (name, email), file=f)
     f.close();
     f.close();
 
 
 def _UpdateDefaults(parser, config):
 def _UpdateDefaults(parser, config):
@@ -282,6 +287,23 @@ def _ReadBouncesFile(fname):
                     continue
                     continue
                 bounces.add(line.strip())
                 bounces.add(line.strip())
 
 
+def GetItems(config, section):
+    """Get the items from a section of the config.
+
+    Args:
+        config: _ProjectConfigParser object containing settings
+        section: name of section to retrieve
+
+    Returns:
+        List of (name, value) tuples for the section
+    """
+    try:
+        return config.items(section)
+    except ConfigParser.NoSectionError as e:
+        return []
+    except:
+        raise
+
 def Setup(parser, project_name, config_fname=''):
 def Setup(parser, project_name, config_fname=''):
     """Set up the settings module by reading config files.
     """Set up the settings module by reading config files.
 
 
@@ -303,11 +325,11 @@ def Setup(parser, project_name, config_fname=''):
 
 
     config.read(config_fname)
     config.read(config_fname)
 
 
-    for name, value in config.items('alias'):
+    for name, value in GetItems(config, 'alias'):
         alias[name] = value.split(',')
         alias[name] = value.split(',')
 
 
     _ReadBouncesFile('doc/bounces')
     _ReadBouncesFile('doc/bounces')
-    for name, value in config.items('bounces'):
+    for name, value in GetItems(config, 'bounces'):
         bounces.add(value)
         bounces.add(value)
 
 
     _UpdateDefaults(parser, config)
     _UpdateDefaults(parser, config)