jak-project/scripts/tasks/update-env.py
Tyler Wilding a66ec7c601
all-types: Improve Jak 2's all-types (#1728)
* all-types: improve all-types generation

* all-types: re-generate all-types

* tests: remove the test reporting feature

the format indeed doesn't work, and all current actions require too many permissions for forked PRs.

I'll make my own eventually that works properly (use the new markdown feature)

* all-types: put the states in the method table instead

* all-types: replace all `*time*...uint64` fields with `time-frame` type

* all-types: address feedback
2022-08-05 17:39:32 -04:00

76 lines
2.1 KiB
Python

import argparse
import os
import pprint
import sys
parser = argparse.ArgumentParser("update-env")
parser.add_argument("--game", help="The name of the game", type=str)
parser.add_argument("--decomp_config", help="The decompiler config file", type=str)
parser.add_argument("--info", help="Just print out current settings", action='store_true')
args = parser.parse_args()
# TODO - read from defaults
file = {
"GAME": "jak1",
"DECOMP_CONFIG": "jak1_ntsc_black_label.jsonc"
}
env_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), ".env")
if not os.path.exists(env_path):
with open(env_path, 'w') as env_file:
for item in file.items():
env_file.write("{}={}\n".format(item[0], item[1]))
with open(env_path, 'r') as env_file:
flags = env_file.readlines()
for flag in flags:
tokens = flag.split("=")
if tokens[0] in file:
file[tokens[0]] = tokens[1].strip()
if args.info:
print(file)
sys.exit(0)
valid_games = ["jak1", "jak2"]
decomp_config_map = {
"jak1": {
"ntscv1": "jak1_ntsc_black_label.jsonc",
"ntscv2": "jak1_us2.jsonc",
"pal": "jak1_pal.jsonc",
"ntscjp": "jak1_jp.jsonc"
},
"jak2": {
"ntscv1": "jak2_ntsc_v1.jsonc"
}
}
default_config_map = {
"jak1": "jak1_ntsc_black_label.jsonc",
"jak2": "jak2_ntsc_v1.jsonc"
}
if args.game:
if args.game not in valid_games:
print("Unsupported game '{}'".format(args.game))
sys.exit(1)
curr = file["GAME"]
file["GAME"] = args.game
if (curr != file["GAME"]) or file["DECOMP_CONFIG"] not in decomp_config_map[file["GAME"]]:
file["DECOMP_CONFIG"] = default_config_map[file["GAME"]]
if args.decomp_config:
if args.decomp_config not in decomp_config_map[file["GAME"]]:
print("Unsupported decomp config '{}' for game '{}'".format(args.decomp_config, file["GAME"]))
sys.exit(1)
file["DECOMP_CONFIG"] = decomp_config_map[file["GAME"]][args.decomp_config]
with open(env_path, 'w') as env_file:
for item in file.items():
env_file.write("{}={}\n".format(item[0], item[1]))
print("Task settings updated")
pp = pprint.PrettyPrinter(indent=2)
pp.pprint(file)