Beispiel #1
0
    return parser.parse_args(sys.argv[2:])


if sys.argv[1] == "transform":
    args = parse_transform()
    with open(".replay.json", "r") as f:
        name = json.load(f)["NAME"]
    dst = Path.home() / ".flor" / name / "repo.git"
    if dst.exists():
        shutil.rmtree(dst)
    transformed = Path.home() / ".flor" / name / "transformed"
    if not transformed.exists():
        transformed.mkdir()
    r = Repo()
    assert "flor.shadow" in str(r.active_branch)
    r.clone(dst)
    r = Repo(dst)
    commits = [
        c for c in r.iter_commits()
        if "flor.shadow" in c.message and ".json" == c.message[-len(".json"):]
    ]
    root = args.source.absolute()
    cwd = os.getcwd()
    os.chdir(dst)
    active = r.active_branch
    for version in commits:
        r.git.checkout(version)
        n = transformed / (str(version.hexsha) + "." + str(args.source))
        try:
            backprop(None, root, args.source, open(n, "w"))  # type: ignore
            print(