# because it's used by sub-processes.
http_pool = None
+class Defconfig:
+ def __init__(self, name, path):
+ self.name = name
+ self.path = path
+ self.developers = None
+
+ def set_developers(self, developers):
+ """
+ Fills in the .developers field
+ """
+ self.developers = [
+ developer.name
+ for developer in developers
+ if developer.hasfile(self.path)
+ ]
+
+
+def get_defconfig_list():
+ """
+ Builds the list of Buildroot defconfigs, returning a list of Defconfig
+ objects.
+ """
+ return [
+ Defconfig(name[:-len('_defconfig')], os.path.join('configs', name))
+ for name in os.listdir('configs')
+ if name.endswith('_defconfig')
+ ]
+
class Package:
all_licenses = dict()
f.write(html_footer)
-def dump_json(packages, stats, date, commit, output):
+def dump_json(packages, defconfigs, stats, date, commit, output):
# Format packages as a dictionnary instead of a list
# Exclude local field that does not contains real date
excluded_fields = ['url_worker', 'name']
if k not in excluded_fields
} for pkg in packages
}
+ defconfigs = {
+ d.name: {
+ k: v
+ for k, v in d.__dict__.items()
+ } for d in defconfigs
+ }
# Aggregate infrastructures into a single dict entry
statistics = {
k: v
# The actual structure to dump, add commit and date to it
final = {'packages': pkgs,
'stats': statistics,
+ 'defconfigs': defconfigs,
'commit': commit,
'date': str(date)}
packages = get_pkglist(args.npackages, package_list)
print("Getting developers ...")
developers = parse_developers()
+ print("Build defconfig list ...")
+ defconfigs = get_defconfig_list()
+ for d in defconfigs:
+ d.set_developers(developers)
print("Getting package make info ...")
package_init_make_info()
print("Getting package details ...")
dump_html(packages, stats, date, commit, args.html)
if args.json:
print("Write JSON")
- dump_json(packages, stats, date, commit, args.json)
+ dump_json(packages, defconfigs, stats, date, commit, args.json)
__main__()