WineBarrels-Wine/Platform-v2.0/DXVK/versions.py

40 lines
1.3 KiB
Python

#! /usr/bin/env python3
if __name__ == "__main__":
import argparse
import os
import subprocess
import sys
import tempfile
import yaml
parser = argparse.ArgumentParser(description="Run script for all versions.")
parser.add_argument("script", metavar="script", type=str, nargs=1,
help="The script to run with the config file as argument.")
parser.add_argument("args", metavar="args", nargs='*', help="Args to add aditional.")
args = parser.parse_args()
# Load configuration
ownPath = os.path.split(sys.argv[0])[0]
filePath = os.path.join(ownPath, "dxvk.yaml")
fileData = open(filePath, "r").read()
config = yaml.load(open(os.path.join(ownPath, "sources.yaml"), "r").read(), Loader=yaml.SafeLoader)
# Run script for each version
for version, i in config.items():
# Gen config file
tmp = fileData.replace("{{VERSION}}", version)
for jID, j in i.items():
tmp = tmp.replace("{{" + jID + "}}", j)
# Generate config file
outFile = tempfile.mktemp(".yaml")
with open(outFile, "w") as f:
f.write(tmp)
# Call script
try:
subprocess.call([args.script[0], outFile] + args.args)
finally:
os.remove(outFile)