#from glob import glob #mport grp import re import os import pprint pp = pprint.PrettyPrinter(indent=4) def include(config_file, config_opts, is_statement=False): if os.path.exists(config_file): if is_statement and config_file in config_opts['config_paths']: getLog().warning("Multiple inclusion of %s, skipping" % config_file) return config_opts['config_paths'].append(config_file) with open(config_file) as f: content = f.read() content = re.sub(r'include\((.*)\)', r'include(\g<1>, config_opts, True)', content) code = compile(content, config_file, 'exec') # pylint: disable=exec-used exec(code) else: raise exception.ConfigError("Could not find included config file: %s" % config_file) name = "fedora-rawhide-x86_64-rpmfusion_free" config_path = "/etc/mock" chroot_cfg_path = '%s/%s.cfg' % (config_path, name) config_opts = {} config_opts['config_paths'] = [] config_opts['chroot_name'] = name config_opts['config_file'] = chroot_cfg_path #cfg = os.path.join(config_path, 'site-defaults.cfg') #if not os.path.exists(cfg): # print "%s does not exist" % cfg # config_opts['config_paths'].append(cfg) #include(cfg, config_opts) #pp.pprint(config_opts) include(chroot_cfg_path, config_opts) yum_conf = config_opts['yum.conf'] del config_opts['yum.conf'] pp.pprint(config_opts) print yum_conf