defconfig.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/env python3
  2. # Copyright (c) 2019, Ulf Magnusson
  3. # SPDX-License-Identifier: ISC
  4. """
  5. Reads a specified configuration file, then writes a new configuration file.
  6. This can be used to initialize the configuration from e.g. an arch-specific
  7. configuration file. This input configuration file would usually be a minimal
  8. configuration file, as generated by e.g. savedefconfig.
  9. The default output filename is '.config'. A different filename can be passed in
  10. the KCONFIG_CONFIG environment variable.
  11. """
  12. import argparse
  13. import kconfiglib
  14. def main():
  15. parser = argparse.ArgumentParser(
  16. formatter_class=argparse.RawDescriptionHelpFormatter,
  17. description=__doc__)
  18. parser.add_argument(
  19. "--kconfig",
  20. default="Kconfig",
  21. help="Top-level Kconfig file (default: Kconfig)")
  22. parser.add_argument(
  23. "config",
  24. metavar="CONFIGURATION",
  25. help="Input configuration file")
  26. args = parser.parse_args()
  27. kconf = kconfiglib.Kconfig(args.kconfig, suppress_traceback=True)
  28. print(kconf.load_config(args.config))
  29. print(kconf.write_config())
  30. if __name__ == "__main__":
  31. main()