Files
scripts/device-deps-regenerator/device2kernel.py
Michael W 50d5f8aa37 scripts: Make REUSE compliant
Test: pipx run reuse lint
Change-Id: I73a60c421ec2d4399d511043e92d387dc890eb3d
2024-02-25 18:01:11 +02:00

55 lines
1.4 KiB
Python

# SPDX-FileCopyrightText: 2017-2023 The LineageOS Project
# SPDX-License-Identifier: Apache-2.0
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)