#!/usr/bin/env python3 import glob import os import argparse DIR = os.path.dirname(__file__) import sys sys.path.append(os.path.join(DIR, '../config')) from config import PYTHON_VERSION, LIBPROTOBUF_VERSION, DATA_DIR, CONFIG_DIR GRAPHENE_DIR = os.path.abspath(os.path.join(DIR, "../graphene/")) RUNTIME = os.path.join(GRAPHENE_DIR, "Runtime") TESTS_DIR = os.path.abspath(os.path.join(DIR, "../tests/")) def parse_args(): parser = argparse.ArgumentParser() parser.add_argument("PATH", nargs='?', default=".", help="Path to the manifest template or the directory containing the manifest templates") return parser.parse_args() def get_manifest_templates(path): manifests = glob.glob(path + "/*.manifest.template") if not manifests: sys.exit("Cannot find manifest templates in directory %r" % path) return manifests def main(): args = parse_args() path = os.path.abspath(args.PATH) if path.endswith(".manifest.template"): if not os.path.isfile(path): sys.exit("Cannot find file %r" % path) manifest_templates = [path] else: manifest_templates = get_manifest_templates(path) for manifest_template in manifest_templates: manifest = manifest_template[:-9] with open(manifest_template) as f_template: with open(manifest, "w+") as f_manifest: for line in f_template: line = line.replace("$(DATA_DIR)", DATA_DIR) line = line.replace("$(CONFIG_DIR)", CONFIG_DIR) line = line.replace("$(RUNTIME)", RUNTIME) line = line.replace("$(PYTHON_VERSION)", PYTHON_VERSION) line = line.replace("$(LIBPROTOBUF_VERSION)", LIBPROTOBUF_VERSION) line = line.replace("$(TESTS_DIR)", TESTS_DIR) f_manifest.write(line) if __name__ == "__main__": main()