#!/usr/bin/python3 import os import sys def fix_installed(layers): installed = [] for layer in layers[:-1]: try: with open(os.path.join(layer, 'lib/apk/db/installed'), 'r') as f: buffer = [] for line in f: if line.startswith('C:'): buffer = ''.join(buffer) if buffer not in installed: installed.append(buffer) buffer = [] buffer.append(line) buffer = ''.join(buffer) if buffer not in installed: installed.append(buffer) except: continue os.makedirs(os.path.join(layers[-1], 'lib/apk/db'), 0o755, True) with open(os.path.join(layers[-1], 'lib/apk/db/installed'), 'w') as f: f.writelines(installed) def fix_world(layers): world = [] for layer in layers[:-1]: try: with open(os.path.join(layer, 'etc/apk/world'), 'r') as f: for line in f: if line not in world: world.append(line) except: continue os.makedirs(os.path.join(layers[-1], 'etc/apk'), 0o755, True) with open(os.path.join(layers[-1], 'etc/apk/world'), 'w') as f: f.writelines(world) fix_installed(sys.argv[1:]) fix_world(sys.argv[1:])