annotations: allow to import/resync single config option
authorAndrea Righi <andrea.righi@canonical.com>
Tue, 15 Nov 2022 09:47:08 +0000 (10:47 +0100)
committerAndrea Righi <andrea.righi@canonical.com>
Tue, 15 Nov 2022 09:47:08 +0000 (10:47 +0100)
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
annotations
kconfig/annotations.py

index e5aac6f2c8e5dca7b3b62da99847d9c2b40228e3..5673565b81a22a423a1b596a6c3bd68910293bb7 100755 (executable)
@@ -66,7 +66,7 @@ def do_import(args):
     # Merge with the current annotations
     c = KConfig(args.import_file)
     a = Annotation(args.file)
-    a.update(c, args.arch, args.flavour)
+    a.update(c, arch=args.arch, flavour=args.flavour, config=args.config)
 
     # Save back to annotations
     a.save(args.file)
@@ -102,6 +102,8 @@ def do_check(args):
         value = c.config[conf] if conf in c.config else '-'
         if value != expected:
             policy = a.config[conf] if conf in a.config else 'undefined'
+            if 'policy' in policy:
+                policy = f"policy<{policy['policy']}>"
             print(f"check-config: FAIL: ({value} != {expected}): {conf} {policy})")
             ret = 1
         else:
index d9acb932d8ac58dc1157a97d1efd76e85c6f6f7e..1b2a791b723f93e63f52653d142be74d4465e2be 100644 (file)
@@ -110,11 +110,15 @@ class Annotation(Config):
                 raise Exception(str(e) + f', line = {line}')
         return config
 
-    def update(self, c: KConfig, arch: str, flavour: str = None):
+    def update(self, c: KConfig, arch: str, flavour: str = None, config: str = None):
         """ Merge configs from a Kconfig object into Annotation object """
 
-        a_configs = self.search_config(arch=arch, flavour=flavour).keys()
-        c_configs = c.config.keys()
+        # Determine if we need to import all configs or a single config
+        if config is None:
+            a_configs = self.search_config(arch=arch, flavour=flavour).keys()
+            c_configs = c.config.keys()
+        else:
+            a_configs = c_configs = {config}
 
         # Import configs from the Kconfig object into Annotations
         if flavour is not None: