summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/defconfig_oldconfig.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/examples/defconfig_oldconfig.py b/examples/defconfig_oldconfig.py
new file mode 100644
index 0000000..9a85440
--- /dev/null
+++ b/examples/defconfig_oldconfig.py
@@ -0,0 +1,33 @@
+# Produces exactly the same output as the following script:
+#
+# make defconfig
+# echo CONFIG_ETHERNET=n >> .config
+# make oldconfig
+# echo CONFIG_ETHERNET=y >> .config
+# yes n | make oldconfig
+#
+# This came up in https://github.com/ulfalizer/Kconfiglib/issues/15.
+
+import kconfiglib
+import sys
+
+conf = kconfiglib.Config(sys.argv[1])
+
+# Mirrors defconfig
+conf.load_config("arch/x86/configs/x86_64_defconfig")
+conf.write_config(".config")
+
+# Mirrors the first oldconfig
+conf.load_config(".config")
+conf["ETHERNET"].set_user_value('n')
+conf.write_config(".config")
+
+# Mirrors the second oldconfig
+conf.load_config(".config")
+conf["ETHERNET"].set_user_value('y')
+for s in conf:
+ if s.get_user_value() is None and 'n' in s.get_assignable_values():
+ s.set_user_value('n')
+
+# Write the final configuration
+conf.write_config(".config")