#!/usr/bin/env python3 import os import sys from argparse import ArgumentParser from pathlib import Path as P import json if __name__ == "__main__": parser = ArgumentParser() parser.add_argument('--input-sitemap', type=P) parser.add_argument('--output-sitemap', type=P) parser.add_argument('--markdown-index', type=P) parser.add_argument('--libs', type=str) parser.add_argument('--plugins', type=str) parser.add_argument('--plugin-configs', nargs='*', default=[]) parser.add_argument('--lib-configs', nargs='*', default=[]) args = parser.parse_args() in_ = args.input_sitemap out = args.output_sitemap index_md = args.markdown_index plugins = args.plugins plugin_configs = args.plugin_configs lib_configs = args.lib_configs with open(in_) as f: index = f.read() index = '\n'.join(line for line in index.splitlines()) if args.libs is None: libs = [] else: libs = args.libs.split(os.pathsep) for config in lib_configs: with open(config) as f: libs += json.load(f) plugins = plugins.replace('\n', '').split(os.pathsep) for config in plugin_configs: with open(config) as f: plugins += json.load(f) plugins = sorted(plugins, key=lambda x: os.path.basename(x)) if libs: index += '\n\tlibs.md' for lib in libs: if not lib: continue name = lib if not name.endswith('.json'): name += '.json' index += "\n\t\t" + name if plugins: index += '\n\tgst-index' for plugin in plugins: if not plugin: continue fname = plugin if not fname.endswith('.json'): fname += '.json' index += "\n\t\t" + fname index = '%s\n%s' % (index_md, index) with open(out, 'w') as fw: fw.write(index)