48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
import json
|
|
|
|
# Define device repos that have repos that depend on them,
|
|
# otherwise the script will remove these on the assumption
|
|
# they are common repos
|
|
COMMON_DEVICE = [
|
|
'android_device_asus_flo',
|
|
'android_device_asus_grouper',
|
|
'android_device_google_marlin',
|
|
'android_device_htc_flounder',
|
|
'android_device_samsung_espressowifi',
|
|
'android_device_samsung_n1awifi',
|
|
'android_device_samsung_t0lte',
|
|
]
|
|
|
|
with open('out.json') as f:
|
|
mapping = json.load(f)
|
|
|
|
kernels = {}
|
|
|
|
reverse_deps = {}
|
|
|
|
for device in mapping:
|
|
deps = mapping[device]
|
|
if device not in reverse_deps:
|
|
reverse_deps[device] = []
|
|
for repo in deps:
|
|
if repo['repo'] not in reverse_deps:
|
|
reverse_deps[repo['repo']] = []
|
|
reverse_deps[repo['repo']].append(device)
|
|
|
|
def simplify_reverse_deps(repo):
|
|
if len(reverse_deps[repo]) == 0 and '-common' not in repo:
|
|
return {repo,}
|
|
res = set()
|
|
for i in reverse_deps[repo]:
|
|
res.update(simplify_reverse_deps(i))
|
|
if repo in COMMON_DEVICE:
|
|
res.add(repo)
|
|
return res
|
|
|
|
for repo in reverse_deps:
|
|
if 'kernel' in repo:
|
|
kernels[repo] = sorted(list(simplify_reverse_deps(repo)))
|
|
|
|
with open('kernels.json', 'w') as f:
|
|
json.dump(kernels, f, indent=4, sort_keys=True)
|