38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
import json
|
|
|
|
with open('out.json') as f:
|
|
mapping = json.load(f)
|
|
|
|
devices = {}
|
|
suffixes = {}
|
|
blacklist = ['sepolicy', 'devicesettings', 'common', 'atv']
|
|
|
|
def simplify_reverse_deps(repo, device):
|
|
# repo['branch'] = cm-14.1 or cm-14.1-caf or cm-14.1-sony
|
|
if 'branch' in repo and repo['branch'].count('-') > 1: # get suffix
|
|
if repo['repo'] not in suffixes:
|
|
suffixes[repo['repo']] = {}
|
|
suffixes[repo['repo']][device] = '-' + repo['branch'].split('-', 2)[2]
|
|
|
|
if repo['repo'] not in mapping or len(mapping[repo['repo']]) == 0:
|
|
return [repo['repo']]
|
|
res = []
|
|
for i in mapping[repo['repo']]:
|
|
res += (simplify_reverse_deps(i, device))
|
|
res.append(repo['repo'])
|
|
return res
|
|
|
|
for repo in mapping:
|
|
if 'device' not in repo or any(x in repo for x in blacklist):
|
|
continue
|
|
codename = repo.split('_', maxsplit=3)[-1]
|
|
if codename in devices:
|
|
print("warning: dupe: %s"%codename)
|
|
devices[codename] = sorted(list(set(simplify_reverse_deps({'repo': repo}, codename))))
|
|
|
|
with open('device_deps.json', 'w') as f:
|
|
out = {'devices': devices, 'suffixes': suffixes}
|
|
out = devices
|
|
json.dump(out, f, indent=4, sort_keys=True)
|
|
f.write('\n')
|