Skip to content

Commit

Permalink
Allow configuring gen_build_info.py through environment variables
Browse files Browse the repository at this point in the history
This makes the life of forks slightly easier by letting you pass an
environment variable instead of having to maintain this file yourself.
  • Loading branch information
deepy committed Feb 12, 2024
1 parent 33c2f37 commit ce84837
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions Tools/gen_build_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
"SS14.Server_osx-x64.zip"
]

VERSION = os.environ['GITHUB_SHA']
FORK_ID = "wizards"
BUILD_URL = f"https://cdn.centcomm.spacestation14.com/builds/wizards/builds/{{FORK_VERSION}}/{FILE}"
MANIFEST_URL = f"https://cdn.centcomm.spacestation14.com/cdn/version/{{FORK_VERSION}}/manifest"
MANIFEST_DOWNLOAD_URL = f"https://cdn.centcomm.spacestation14.com/cdn/version/{{FORK_VERSION}}/download"
FORK_ID = os.environ.get("CDN_FORK_ID", "wizards")
HOSTNAME = os.environ.get("CDN_HOSTNAME", "cdn.centcomm.spacestation14.com")
BUILD_URL = f"https://{HOSTNAME}/builds/{FORK_ID}/builds/{{FORK_VERSION}}/{FILE}"
MANIFEST_URL = f"https://{HOSTNAME}/version/{{FORK_VERSION}}/manifest"
MANIFEST_DOWNLOAD_URL = f"https://{HOSTNAME}/version/{{FORK_VERSION}}/download"

def main() -> None:
client_file = os.path.join("release", FILE)
Expand All @@ -38,24 +38,33 @@ def inject_manifest(zip_path: str, manifest: str) -> None:
z.writestr("build.json", manifest)


def get_git_sha() -> str:
proc = subprocess.run(["git", "rev-parse", "HEAD"], stdout=subprocess.PIPE, check=True, encoding="UTF-8")
tag = proc.stdout.strip()
return tag

def generate_build_json(file: str) -> str:
# Env variables set by Jenkins.

hash = sha256_file(file)
engine_version = get_engine_version()
manifest_hash = generate_manifest_hash(file)
version = os.environ.get("GITHUB_SHA")
if not version:
version = get_git_sha()

return json.dumps({
"download": BUILD_URL,
"hash": hash,
"version": VERSION,
"version": version,
"fork_id": FORK_ID,
"engine_version": engine_version,
"manifest_url": MANIFEST_URL,
"manifest_download_url": MANIFEST_DOWNLOAD_URL,
"manifest_hash": manifest_hash
})


def generate_manifest_hash(file: str) -> str:
zip = ZipFile(file)
infos = zip.infolist()
Expand Down Expand Up @@ -83,7 +92,6 @@ def get_engine_version() -> str:
assert tag.startswith("v")
return tag[1:] # Cut off v prefix.


def sha256_file(path: str) -> str:
with open(path, "rb") as f:
h = hashlib.sha256()
Expand Down

0 comments on commit ce84837

Please sign in to comment.