52 lines
1.3 KiB
Python
52 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)
|