xref: /aosp_15_r20/external/pytorch/tools/substitute.py (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Workerimport argparse
2*da0073e9SAndroid Build Coastguard Workerimport os
3*da0073e9SAndroid Build Coastguard Workerimport os.path
4*da0073e9SAndroid Build Coastguard Worker
5*da0073e9SAndroid Build Coastguard Worker
6*da0073e9SAndroid Build Coastguard Workerdef main() -> None:
7*da0073e9SAndroid Build Coastguard Worker    parser = argparse.ArgumentParser()
8*da0073e9SAndroid Build Coastguard Worker    parser.add_argument("--input-file")
9*da0073e9SAndroid Build Coastguard Worker    parser.add_argument("--output-file")
10*da0073e9SAndroid Build Coastguard Worker    parser.add_argument("--install-dir", "--install_dir")
11*da0073e9SAndroid Build Coastguard Worker    parser.add_argument("--replace", action="append", nargs=2)
12*da0073e9SAndroid Build Coastguard Worker    options = parser.parse_args()
13*da0073e9SAndroid Build Coastguard Worker
14*da0073e9SAndroid Build Coastguard Worker    with open(options.input_file) as f:
15*da0073e9SAndroid Build Coastguard Worker        contents = f.read()
16*da0073e9SAndroid Build Coastguard Worker
17*da0073e9SAndroid Build Coastguard Worker    output_file = os.path.join(options.install_dir, options.output_file)
18*da0073e9SAndroid Build Coastguard Worker    os.makedirs(os.path.dirname(output_file), exist_ok=True)
19*da0073e9SAndroid Build Coastguard Worker
20*da0073e9SAndroid Build Coastguard Worker    for old, new in options.replace:
21*da0073e9SAndroid Build Coastguard Worker        contents = contents.replace(old, new)
22*da0073e9SAndroid Build Coastguard Worker
23*da0073e9SAndroid Build Coastguard Worker    with open(output_file, "w") as f:
24*da0073e9SAndroid Build Coastguard Worker        f.write(contents)
25*da0073e9SAndroid Build Coastguard Worker
26*da0073e9SAndroid Build Coastguard Worker
27*da0073e9SAndroid Build Coastguard Workerif __name__ == "__main__":
28*da0073e9SAndroid Build Coastguard Worker    main()  # pragma: no cover
29