#!/usr/bin/env python3 import os import sys import json dists_folder = "/home/dhl/.aptly/public/dists/" data = {} data['data'] = [] entry = {} if os.path.isdir(dists_folder): dists = os.listdir(dists_folder) for dist in dists: dist_folder = os.path.join(dists_folder, dist) components = os.listdir(dist_folder) for component in components: component_path = os.path.join(dist_folder, component) if os.path.isdir(component_path): arches = os.listdir(component_path) for arch in arches: if arch == "source": continue arch_path = os.path.join(component_path, arch) if os.path.isdir(arch_path): packages_file_path = os.path.join(arch_path, 'Packages') with open(packages_file_path, 'r') as f: for line in f: l = line.strip("\n") if not l: data['data'].append(entry) entry = {} if l and l[0].isalpha(): l_data = l.split(":", 1) key = l_data[0].lstrip() value = l_data[1].lstrip() if key and value: if not key in ["Depends", "Suggests", "Breaks", "Conflicts", "Replaces", "Architecture"]: entry[key] = value entry["Distribution"] = dist entry["Component"] = component entry["Architecture"] = arch.replace("binary-","") print(json.dumps(data, indent=4))