#!/usr/bin/python3 # # Try regenerate ./img8/.treeinfo to include # BaseOS, AppStream variant info # just like productmd does # import argparse import configparser import os.path import sys # -t ./img8 Specify lorax output directory, including .treeinfo # * Subrepositories, i.e AppStream BaseOS aparse = argparse.ArgumentParser() aparse.add_argument('-t', required=True) aparse.add_argument('variants', action='append', nargs='+') args = aparse.parse_args() #print(args.t) #print(args.variants) treeinfo = configparser.ConfigParser() treeinfo.read(args.t + "/.treeinfo") ## you can't use pprint for dumping configparser object def dump_ini(cp): for section in cp.sections(): print("["+section+"]") for key in cp[section]: print("{0} = {1}".format(key,cp[section][key])) #dump_ini(treeinfo) #print('--------------') #print(str(args.variants[0][0])+'/Packages') if os.path.isdir(args.t+'/'+args.variants[0][0]+'/Packages'): treeinfo['general']['packagedir'] = args.variants[0][0]+'/Packages' treeinfo['general']['repository'] = args.variants[0][0] treeinfo['general']['variant'] = args.variants[0][0] treeinfo['general']['variants'] = ','.join(args.variants[0]) treeinfo.add_section('header') treeinfo['header']['type'] = 'productmd.treeinfo' treeinfo['header']['version'] = '1.2' treeinfo.add_section('media') treeinfo['media']['discnum'] = '1' treeinfo['media']['totaldiscs'] = '1' treeinfo.add_section('release') treeinfo['release']['name'] = treeinfo['general']['family']+' Linux' treeinfo['release']['short'] = treeinfo['general']['family'] treeinfo['release']['version'] = treeinfo['general']['version'] treeinfo.add_section('tree') treeinfo['tree']['arch'] = treeinfo['general']['arch'] ## int() the timestamp treeinfo['tree']['build_timestamp'] = (treeinfo['general']['timestamp'].split('.'))[0] treeinfo['tree']['platforms'] = treeinfo['general']['arch'] treeinfo['tree']['variants'] = ','.join(args.variants[0]) for v in args.variants[0]: if os.path.isdir(args.t+'/'+v+'/Packages'): sec = 'variant-{0}'.format(v) treeinfo.add_section(sec) treeinfo[sec]['id'] = v treeinfo[sec]['name'] = v treeinfo[sec]['packages'] = v+'/Packages' treeinfo[sec]['repository'] = v treeinfo[sec]['type'] = 'variant' treeinfo[sec]['uid'] = v #dump_ini(treeinfo) treeinfo.write(sys.stdout)