diff --git a/support/scripts/check-dotconfig.py b/support/scripts/check-dotconfig.py new file mode 100755 index 0000000000..f9a416b743 --- /dev/null +++ b/support/scripts/check-dotconfig.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 + +# This scripts check that all lines present in the defconfig are +# still present in the .config + +import sys + + +def main(): + if not (len(sys.argv) == 3): + print("Error: incorrect number of arguments") + print("""Usage: check-dotconfig """) + sys.exit(1) + + configfile = sys.argv[1] + defconfig = sys.argv[2] + + # strip() to get rid of trailing \n + with open(configfile) as configf: + configlines = [l.strip() for l in configf.readlines()] + + defconfiglines = [] + with open(defconfig) as defconfigf: + # strip() to get rid of trailing \n + for line in (line.strip() for line in defconfigf.readlines()): + if line.startswith("BR2_"): + defconfiglines.append(line) + elif line.startswith('# BR2_') and line.endswith(' is not set'): + defconfiglines.append(line) + + # Check that all the defconfig lines are still present + missing = [line for line in defconfiglines if line not in configlines] + + if missing: + print("WARN: defconfig {} can't be used:".format(defconfig)) + for m in missing: + print(" Missing: {}".format(m)) + sys.exit(1) + + +if __name__ == "__main__": + main()