| #!/usr/bin/env python3 |
| |
| # Copyright (c) 2019, Ulf Magnusson |
| # SPDX-License-Identifier: ISC |
| |
| """ |
| Saves a minimal configuration file that only lists symbols that differ in value |
| from their defaults. Loading such a configuration file is equivalent to loading |
| the "full" configuration file. |
| |
| Minimal configuration files are handy to start from when editing configuration |
| files by hand. |
| |
| The default input configuration file is '.config'. A different input filename |
| can be passed in the KCONFIG_CONFIG environment variable. |
| |
| Note: Minimal configurations can also be generated from within the menuconfig |
| interface. |
| """ |
| import argparse |
| |
| import kconfiglib |
| |
| |
| def main(): |
| parser = argparse.ArgumentParser( |
| formatter_class=argparse.RawDescriptionHelpFormatter, |
| description=__doc__) |
| |
| parser.add_argument( |
| "--kconfig", |
| default="Kconfig", |
| help="Top-level Kconfig file (default: Kconfig)") |
| |
| parser.add_argument( |
| "--out", |
| metavar="MINIMAL_CONFIGURATION", |
| default="defconfig", |
| help="Output filename for minimal configuration (default: defconfig)") |
| |
| args = parser.parse_args() |
| |
| kconf = kconfiglib.Kconfig(args.kconfig, suppress_traceback=True) |
| print(kconf.load_config()) |
| print(kconf.write_min_config(args.out)) |
| |
| |
| if __name__ == "__main__": |
| main() |