[rtems-source-builder commit] sb: Bail out only if hash definitions conflict

Sebastian Huber sebh at rtems.org
Wed Mar 1 12:33:32 UTC 2017


Module:    rtems-source-builder
Branch:    master
Commit:    4f72b95e60eedca772994f740a1fd0c973608632
Changeset: http://git.rtems.org/rtems-source-builder/commit/?id=4f72b95e60eedca772994f740a1fd0c973608632

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed Mar  1 08:18:07 2017 +0100

sb: Bail out only if hash definitions conflict

---

 source-builder/sb/sources.py | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/source-builder/sb/sources.py b/source-builder/sb/sources.py
index fb6d819..967becc 100644
--- a/source-builder/sb/sources.py
+++ b/source-builder/sb/sources.py
@@ -97,13 +97,17 @@ def hash(args, macros, error):
         return
     _map = 'hashes'
     _file = macros.expand(args[1])
-    if _file in macros.map_keys(_map):
-        error('hash already set: %s' % (args[1]))
-        return
-    macros.create_map(_map)
-    macros.set_write_map(_map)
-    macros.define(_file, '%s %s' % (args[0], args[2]))
-    macros.unset_write_map()
+    new_value = '%s %s' % (args[0], args[2])
+    existing_value = get_hash(_file, macros)
+    if existing_value is not None:
+        if existing_value != new_value:
+            error('conflicting hash definitions for: %s' % (args[1]))
+            return
+    else:
+        macros.create_map(_map)
+        macros.set_write_map(_map)
+        macros.define(_file, new_value)
+        macros.unset_write_map()
     return None
 
 def get(label, name, macros, error):




More information about the vc mailing list