Clone of official tools

Revision:
43:2a7da56ebd24
Parent:
40:7d3fa6b99b2b
--- a/get_config.py	Mon Nov 06 13:17:14 2017 -0600
+++ b/get_config.py	Tue Sep 25 13:43:09 2018 -0500
@@ -16,9 +16,9 @@
 limitations under the License.
 
 """
+from __future__ import print_function
 import sys
-from os.path import isdir, abspath, dirname, join
-from os import _exit
+from os.path import abspath, dirname, join
 
 # Be sure that the tools directory is in the search path
 ROOT = abspath(join(dirname(__file__), ".."))
@@ -28,22 +28,23 @@
 from tools.options import get_default_options_parser
 from tools.options import extract_mcus
 from tools.build_api import get_config
-from config import Config
-from utils import argparse_filestring_type
-try:
-    import tools.private_settings as ps
-except:
-    ps = object()
+from tools.config import Config
+from tools.utils import argparse_filestring_type
 
 if __name__ == '__main__':
     # Parse Options
-    parser = get_default_options_parser(add_clean=False, add_options=False)
-    parser.add_argument("--source", dest="source_dir", type=argparse_filestring_type, required=True,
-                        default=[], help="The source (input) directory", action="append")
-    parser.add_argument("--prefix", dest="prefix", action="append",
-                      default=[], help="Restrict listing to parameters that have this prefix")
-    parser.add_argument("-v", "--verbose", action="store_true", dest="verbose",
-                      default=False, help="Verbose diagnostic output")
+    parser = get_default_options_parser(add_clean=False, add_options=False,
+                                        add_app_config=True)
+    parser.add_argument(
+        "--source", dest="source_dir", type=argparse_filestring_type,
+        required=True, default=[], help="The source (input) directory",
+        action="append")
+    parser.add_argument(
+        "--prefix", dest="prefix", action="append", default=[],
+        help="Restrict listing to parameters that have this prefix")
+    parser.add_argument(
+        "-v", "--verbose", action="store_true", dest="verbose", default=False,
+        help="Verbose diagnostic output")
 
     options = parser.parse_args()
 
@@ -52,41 +53,42 @@
         args_error(parser, "argument -m/--mcu is required")
     target = extract_mcus(parser, options)[0]
 
-    # Toolchain
-    if options.tool is None:
-        args_error(parser, "argument -t/--toolchain is required")
-    toolchain = options.tool[0]
-
     options.prefix = options.prefix or [""]
 
     try:
-        params, macros, features = get_config(options.source_dir, target, toolchain)
+        params, macros, features = get_config(
+            options.source_dir,
+            target,
+            options.tool[0] if options.tool else None,
+            app_config=options.app_config
+        )
         if not params and not macros:
-            print "No configuration data available."
-            _exit(0)
+            print("No configuration data available.")
+            sys.exit(0)
         if params:
-            print "Configuration parameters"
-            print "------------------------"
-            for p in sorted(params):
-                for s in options.prefix:
-                    if p.startswith(s):
-                        print(str(params[p]) if not options.verbose else params[p].get_verbose_description())
-                        break
-            print ""
+            print("Configuration parameters")
+            print("------------------------")
+            for p in sorted(list(params.keys())):
+                if any(p.startswith(s) for s in options.prefix):
+                    if options.verbose:
+                        print(params[p].get_verbose_description())
+                    else:
+                        print(str(params[p]))
+            print("")
 
-        print "Macros"
-        print "------"
-        if macros:
-            print 'Defined with "macros":', Config.config_macros_to_macros(macros)
-        print "Generated from configuration parameters:", Config.parameters_to_macros(params)
+        print("Macros")
+        print("------")
+        for m in Config.config_macros_to_macros(macros):
+            if any(m.startswith(s) for s in options.prefix):
+                print(m)
 
-    except KeyboardInterrupt, e:
-        print "\n[CTRL+c] exit"
-    except Exception,e:
+    except KeyboardInterrupt as e:
+        print("\n[CTRL+c] exit")
+    except Exception as e:
         if options.verbose:
             import traceback
             traceback.print_exc(file=sys.stdout)
         else:
-            print "[ERROR] %s" % str(e)
+            print("[ERROR] %s" % str(e))
 
         sys.exit(1)