From db58900d3d289e2b25112963375edf183dca032f Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Tue, 20 Nov 2018 12:59:53 +0100 Subject: Make keyboard shortcut defaults configurable --- tools/Kconfiglib | 1 - tools/config.py | 90 +++++++------------------------------------------------- 2 files changed, 11 insertions(+), 80 deletions(-) delete mode 160000 tools/Kconfiglib (limited to 'tools') diff --git a/tools/Kconfiglib b/tools/Kconfiglib deleted file mode 160000 index 5d91835..0000000 --- a/tools/Kconfiglib +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5d918357dd5734b900e1fdf074090ea662debd9e diff --git a/tools/config.py b/tools/config.py index 9283fd8..11de99c 100755 --- a/tools/config.py +++ b/tools/config.py @@ -1,88 +1,20 @@ #!/usr/bin/env python3 +import os import argparse -from Kconfiglib import kconfiglib - -def search(node, term): - while node: - if isinstance(node.item, kconfiglib.Symbol): - if node.item.name == term: - return node.item.str_value - - if node.list: - r = search(node.list, term) - if r is not None: - return r - - node = node.next - -def searchBug(node, term): - bugs = "" - - while node: - if isinstance(node.item, kconfiglib.Symbol): - if node.item.name.startswith(term): - if bugs is not "": - bugs += ";" - bugs += node.item.name - - if node.list: - r = searchBug(node.list, term) - if r is not None and r is not "": - if bugs is not "": - bugs += ";" - bugs += r - - node = node.next - return bugs - -def main(args): - kconf = kconfiglib.Kconfig(args.kconfig) - if args.dotconfig is not None: - kconf.load_config(args.dotconfig) - - i = "" - if args.setting.endswith("BUG"): - i = searchBug(kconf.top_node, args.setting) - else: - i = search(kconf.top_node, args.setting) - - if i is not None: - print(i) - -def writeItem(node, gen): - while node: - if isinstance(node.item, kconfiglib.Symbol): - if node.item.str_value == 'y': - gen.write("#define CONFIG_{0}\n".format(node.item.name)) - elif node.item.str_value == 'n': - gen.write("#undef CONFIG_{0}\n".format(node.item.name)) - else: - gen.write("#define CONFIG_{0} \"{1}\"\n".format(node.item.name, node.item.str_value)) - - if node.list: - writeItem(node.list, gen) - - node = node.next - -def generate(args): - kconf = kconfiglib.Kconfig(args.kconfig) - if args.dotconfig is not None: - kconf.load_config(args.dotconfig) - - with open(args.generate, "wt") as gen: - gen.write("// This is an auto-generated file, do not edit.\n") - writeItem(kconf.top_node, gen) +import subprocess if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("--kconfig", metavar="Kconfig", nargs="?", default="Kconfig", help="Top-level Kconfig file (default: Kconfig)") - parser.add_argument("--dotconfig", metavar="dotconfig", nargs="?", help=".config") - parser.add_argument("--generate", metavar="config_header", nargs="?", help="Generate config file") - parser.add_argument("setting", metavar="CONFIG_KEY", nargs="?", help="Top-level Kconfig file (default: Kconfig)") + parser.add_argument("--dotconfig", metavar="dotconfig", nargs="?", default=".config", help=".config") + parser.add_argument("--generate", metavar="config_header", nargs="?", default="config.h", help="Generate config file") args = parser.parse_args() - if args.generate is not None: - generate(args) - else: - main(args) + + # set srctree, otherwise includes don't work + os.environ["srctree"] = os.path.dirname(os.path.realpath(args.kconfig)) + os.environ["KCONFIG_CONFIG"] = os.path.realpath(args.dotconfig) + + subprocess.run(["genconfig", os.path.realpath(args.kconfig), "--header-path=" + args.generate], check=True) + -- cgit v1.2.1