hc
2024-08-12 233ab1bd4c5697f5cdec94e60206e8c6ac609b4c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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 <configfile> <defconfig>""")
        sys.exit(1)
 
    configfile = sys.argv[1]
    defconfig = sys.argv[2]
 
    # strip() to get rid of trailing \n
    with open(configfile) as configf:
        configlines = [line.strip() for line 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()