Files
agnos-kernel-sdm845/compare_defconfig.py
2020-09-11 17:40:31 +02:00

45 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python
import sys
if len(sys.argv) < 3:
raise Exception("Supply two defconfig files as arguments")
def parse(path):
result = {}
with open(path, 'r') as f:
for line in f:
line = line.strip()
if line.startswith("CONFIG_"):
try:
name, value = line.split("=")
result[name] = value
except:
print(f"FAILED TO SPLIT LINE: {line}")
return result
options_1 = parse(sys.argv[1])
options_2 = parse(sys.argv[2])
common_options = list(filter(lambda x: x in options_2.keys(), options_1.keys()))
different_common = list(filter(lambda x: options_1[x] != options_2[x], common_options))
unique_1 = list(filter(lambda x: not x in options_2.keys(), options_1.keys()))
unique_2 = list(filter(lambda x: not x in options_1.keys(), options_2.keys()))
different_common.sort()
unique_1.sort()
unique_2.sort()
print("Different options:")
for opt in different_common:
print(f"\t{opt}: \'{options_1[opt]}\' vs \'{options_2[opt]}\'")
print("\n\nUnique in 1:")
for opt in unique_1:
print(f"\t{opt}: \'{options_1[opt]}\'")
print("\n\nUnique in 2:")
for opt in unique_2:
print(f"\t{opt}: \'{options_2[opt]}\'")