]> granicus.if.org Git - esp-idf/commitdiff
confgen.py: allow multiple defaults files
authorIvan Grokhotkov <ivan@espressif.com>
Fri, 19 Oct 2018 03:53:57 +0000 (11:53 +0800)
committerIvan Grokhotkov <ivan@espressif.com>
Sun, 11 Nov 2018 13:44:35 +0000 (21:44 +0800)
tools/kconfig_new/confgen.py

index 0d88b84899f55d962df4ffb9337f7209e4202981..a8cf50686c986f43f205e7499ce68ab13969eacd 100755 (executable)
@@ -46,9 +46,10 @@ def main():
                         default=None)
 
     parser.add_argument('--defaults',
-                        help='Optional project defaults file, used if --config file doesn\'t exist',
+                        help='Optional project defaults file, used if --config file doesn\'t exist. Multiple files can be specified using multiple --defaults arguments.',
                         nargs='?',
-                        default=None)
+                        default=[],
+                        action='append')
 
     parser.add_argument('--create-config-if-missing',
                         help='If set, a new config file will be saved if the old one is not found',
@@ -84,12 +85,14 @@ def main():
 
     config = kconfiglib.Kconfig(args.kconfig)
 
-    if args.defaults is not None:
+    if len(args.defaults) > 0:
         # always load defaults first, so any items which are not defined in that config
         # will have the default defined in the defaults file
-        if not os.path.exists(args.defaults):
-            raise RuntimeError("Defaults file not found: %s" % args.defaults)
-        config.load_config(args.defaults)
+        for name in args.defaults:
+            print("Loading defaults file %s..." % name)
+            if not os.path.exists(name):
+                raise RuntimeError("Defaults file not found: %s" % name)
+            config.load_config(name, replace=False)
 
     if args.config is not None:
         if os.path.exists(args.config):
@@ -97,7 +100,7 @@ def main():
         elif args.create_config_if_missing:
             print("Creating config file %s..." % args.config)
             config.write_config(args.config)
-        elif args.default is None:
+        elif args.config is None:
             raise RuntimeError("Config file not found: %s" % args.config)
 
         for output_type, filename in args.output: