Documentation for Version/version_builder.py

Version/version_builder.py

Namespaces

Name
version_builder

Source code

# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.

import sys
from string import Template

version_file, template, output = sys.argv[1:]
with open(version_file, "r") as fb:
    values = [x.strip().split(" ", 1) for x in fb.readlines() if " " in x.strip()]
    kwargs = dict(values)

with open(template, "r") as fb:
    template = Template(fb.read())

with open(output, "w") as f:
    commit_hash = (
        kwargs["STABLE_GIT_COMMIT_HASH"]
        if "STABLE_GIT_COMMIT_HASH" in kwargs
        else "unknown"
    )
    is_dirty = kwargs["STABLE_GIT_DIRTY"].strip() == "1"
    major = kwargs["STABLE_GIT_MAJOR"]
    minor = kwargs["STABLE_GIT_MINOR"]
    revision = kwargs["STABLE_GIT_REVISION"]
    channel = kwargs["STABLE_GIT_CHANNEL"]
    patch = kwargs["STABLE_GIT_PATCH"]
    full = kwargs["STABLE_FULL_VERSION"]

    f.write(
        template.substitute(
            MICROSOFT_VERSION_COMMIT=commit_hash,
            MICROSOFT_VERSION_WIP="true" if is_dirty else "false",
            MICROSOFT_VERSION_MAJOR=major,
            MICROSOFT_VERSION_MINOR=minor,
            MICROSOFT_VERSION_REVISION=revision,
            MICROSOFT_VERSION_CHANNEL=channel,
            MICROSOFT_VERSION_PATCH=patch,
            MICROSOFT_VERSION_FULL=full,
        )
    )

Updated on 1 August 2023 at 16:25:10 UTC