diff options
| -rw-r--r-- | README.rst | 5 | ||||
| -rwxr-xr-x | savedefconfig.py | 47 | ||||
| -rw-r--r-- | setup.py | 2 |
3 files changed, 53 insertions, 1 deletions
@@ -54,7 +54,8 @@ installed with e.g. Microsoft Windows is supported. The ``pip`` installation will give you both the base library and the following -executables. All but two mirror functionality available in the C tools. +executables. All but two (``genconfig`` and ``setconfig``) mirror functionality +available in the C tools. - `menuconfig <https://github.com/ulfalizer/Kconfiglib/blob/master/menuconfig.py>`_ @@ -62,6 +63,8 @@ executables. All but two mirror functionality available in the C tools. - `olddefconfig <https://github.com/ulfalizer/Kconfiglib/blob/master/olddefconfig.py>`_ +- `savedefconfig <https://github.com/ulfalizer/Kconfiglib/blob/master/savedefconfig.py>`_ + - `alldefconfig <https://github.com/ulfalizer/Kconfiglib/blob/master/alldefconfig.py>`_ - `allnoconfig <https://github.com/ulfalizer/Kconfiglib/blob/master/allnoconfig.py>`_ diff --git a/savedefconfig.py b/savedefconfig.py new file mode 100755 index 0000000..19a403b --- /dev/null +++ b/savedefconfig.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python + +# Copyright (c) 2019, Ulf Magnusson +# SPDX-License-Identifier: ISC + +import argparse + +import kconfiglib + + +def main(): + parser = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description=""" +Saves a minimal configuration file that only lists symbols that differ in value +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. +""") + + parser.add_argument( + "--kconfig", + default="Kconfig", + help="Base Kconfig file (default: Kconfig)") + + parser.add_argument( + "--out", + default="defconfig", + help="Output filename for minimal configuration (default: defconfig)") + + args = parser.parse_args() + + kconf = kconfiglib.Kconfig(args.kconfig) + kconf.load_config() + kconf.write_min_config(args.out) + + +if __name__ == "__main__": + main() @@ -29,6 +29,7 @@ setuptools.setup( "genconfig", "oldconfig", "olddefconfig", + "savedefconfig", "alldefconfig", "allnoconfig", "allmodconfig", @@ -45,6 +46,7 @@ setuptools.setup( "genconfig = genconfig:main", "oldconfig = oldconfig:_main", "olddefconfig = olddefconfig:main", + "savedefconfig = savedefconfig:main", "alldefconfig = alldefconfig:main", "allnoconfig = allnoconfig:main", "allmodconfig = allmodconfig:main", |
