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