#!/usr/bin/python3 import configparser import os import sys ARCHES = ['x86_64', 'ppc64le', 'aarch64'] def fixit(path): for arch in ARCHES: # Read in the treeinfo file from disk with open(os.path.join(path, f'BaseOS/{arch}/os/.treeinfo')) as tinfofile: config = configparser.ConfigParser() config.read_file(tinfofile) # Link the Appstream repo in to the treeinfo so that it is available when installing using BaseOS the repo config.add_section('variant-AppStream') config.set('variant-AppStream', 'id', 'AppStream') config.set('variant-AppStream', 'name', 'AppStream') config.set('variant-AppStream', 'packages', f'../../../AppStream/{arch}/os/Packages') config.set('variant-AppStream', 'repository', f'../../../AppStream/{arch}/os/') config.set('variant-AppStream', 'type', 'variant') config.set('variant-AppStream', 'uid', 'AppStream') config.set('tree', 'variants', 'BaseOS,AppStream') # Write the new treeinfo back to disk with open(os.path.join(path, f'BaseOS/{arch}/os/.treeinfo'), 'w') as tinfofile: config.write(tinfofile) def help(): print("usage: fix_treeinfos /path/to/staged/distro") sys.exit(1) if __name__ == '__main__': if len(sys.argv) < 2: help() fixit(sys.argv[1])