|
8 | 8 | """
|
9 | 9 |
|
10 | 10 | import os
|
| 11 | +import re |
11 | 12 | import shutil
|
12 | 13 | import subprocess
|
13 | 14 | import time
|
14 | 15 |
|
15 | 16 | from jinja2 import Environment, select_autoescape
|
16 | 17 |
|
17 | 18 | PREFETCH_DEPS_SH_NAME = "prefetch_crt_dependency.sh"
|
| 19 | +EXPECTED_CRT_VER_CMAKE = "cmake/expected_crt_version.cmake" |
| 20 | +CRT_VERSION_F = "VERSION" |
18 | 21 | CRT_DIR = "./crt/aws-crt-cpp"
|
19 | 22 | GIT_EXE = shutil.which("git")
|
20 | 23 |
|
| 24 | +CRT_VERSION_PATTERN = re.compile("^(?P<major>[0-9]+).(?P<minor>[0-9]+).(?P<patch>[0-9]+).*") |
21 | 25 |
|
22 | 26 | PREFETCH_DEPS_TEMPLATE = \
|
23 | 27 | """#!/bin/sh
|
|
64 | 68 |
|
65 | 69 | """
|
66 | 70 |
|
| 71 | +EXPECTED_CRT_VERSION_TEMPLATE = \ |
| 72 | +"""# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. |
| 73 | +# SPDX-License-Identifier: Apache-2.0. |
| 74 | +
|
| 75 | +set(EXPECTED_CRT_VERSION_MAJOR {{ t_major }}) |
| 76 | +set(EXPECTED_CRT_VERSION_MINOR {{ t_minor }}) |
| 77 | +set(EXPECTED_CRT_VERSION_PATCH {{ t_patch }}) |
| 78 | +
|
| 79 | +set(EXPECTED_CRT_VERSION_MAJOR ${EXPECTED_CRT_VERSION_MAJOR} PARENT_SCOPE) |
| 80 | +set(EXPECTED_CRT_VERSION_MINOR ${EXPECTED_CRT_VERSION_MINOR} PARENT_SCOPE) |
| 81 | +set(EXPECTED_CRT_VERSION_PATCH ${EXPECTED_CRT_VERSION_PATCH} PARENT_SCOPE) |
| 82 | +""" |
67 | 83 |
|
68 | 84 | def call_git(cwd: str, timeout: int, command: str):
|
69 | 85 | git_cmd = [GIT_EXE]
|
@@ -114,12 +130,22 @@ def main():
|
114 | 130 | with open(f"{PREFETCH_DEPS_SH_NAME}", mode="w", encoding="utf-8") as prefetch_script_f:
|
115 | 131 | prefetch_script_f.write(rendered_script)
|
116 | 132 |
|
| 133 | + with open(f"{CRT_DIR}/{CRT_VERSION_F}", mode="r", encoding="utf-8") as version_f: |
| 134 | + ver_match = CRT_VERSION_PATTERN.match(version_f.read()) |
| 135 | + cmake_exp_ver_template = jinja2_env.from_string(EXPECTED_CRT_VERSION_TEMPLATE) |
| 136 | + rendered_cmake_ver = cmake_exp_ver_template.render(t_major=ver_match.group("major"), |
| 137 | + t_minor=ver_match.group("minor"), |
| 138 | + t_patch=ver_match.group("patch")) |
| 139 | + |
| 140 | + with open(f"{EXPECTED_CRT_VER_CMAKE}", mode="w", encoding="utf-8") as cmake_f: |
| 141 | + cmake_f.write(rendered_cmake_ver) |
| 142 | + |
117 | 143 | print(f"CRT submodule is updated to {latest_crt_version}\n"
|
118 |
| - f"Script {PREFETCH_DEPS_SH_NAME} content is updated.") |
| 144 | + f"Scripts {PREFETCH_DEPS_SH_NAME} and {EXPECTED_CRT_VER_CMAKE} are updated.") |
119 | 145 |
|
120 | 146 | print("Don't forget to git add, commit, and push:\n")
|
121 | 147 | print(f" git checkout -b updateCrt/{latest_crt_version} && "
|
122 |
| - f"git add {CRT_DIR} {PREFETCH_DEPS_SH_NAME} && " |
| 148 | + f"git add {CRT_DIR} {PREFETCH_DEPS_SH_NAME} {EXPECTED_CRT_VER_CMAKE} && " |
123 | 149 | f"git commit -m \"Update CRT to {latest_crt_version}\" && "
|
124 | 150 | f"git push origin updateCrt/{latest_crt_version}")
|
125 | 151 |
|
|
0 commit comments