UWINE/libs/protonpath_loader.py
2024-02-25 22:00:47 +01:00

36 lines
1.5 KiB
Python

import os
#import dotenv
import libs.mustExist as sanity
mustExist = sanity.mustExist
# SECTION Loading the .env file
#dotenv.load_dotenv()
# NOTE Setting the Proton path with a fallback
def set_protonpath(provided_protonpath, default_proton_path, UWINEDIR):
proton_path = default_proton_path
# Support for the argument (overrides the env var)
if provided_protonpath:
proton_path = provided_protonpath
print(f"[INFO] Provided PROTONPATH={proton_path}")
# Distinguish between absolute and relative paths to support versioning
if not os.path.isabs(proton_path):
print(f"[INFO] {proton_path} is a relative path")
print(f"[INFO] Appending {UWINEDIR}/protons/ to {proton_path}")
proton_path = os.path.join(UWINEDIR, "protons", proton_path)
print("[INFO] Now it is an absolute path: " + proton_path)
if not mustExist(proton_path, fatal=False):
print(f"[WARNING] {proton_path} does not exist")
print("[WARNING] Defaulting to " + default_proton_path)
proton_path = default_proton_path
else:
# We need a valid PROTONPATH in the .env file in this case
if "PROTONPATH" not in os.environ:
print("[WARNING] PROTONPATH is not set. Using default value: '" + proton_path + "'")
else:
proton_path = os.environ["PROTONPATH"]
print(f"[INFO] PROTONPATH={proton_path}")
# We need this to exist
mustExist(proton_path)
print(f"[OK] PROTONPATH={proton_path}")
return proton_path