Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
signalapp
GitHub Repository: signalapp/Signal-iOS
Path: blob/main/Scripts/check_xcode_version.py
1 views
1
#!/usr/bin/env python3
2
3
import argparse
4
import subprocess
5
6
7
def get_actual_version():
8
return subprocess.run(
9
["xcodebuild", "-version"], check=True, capture_output=True, encoding="utf8"
10
).stdout.split("\n")[0]
11
12
13
def get_expected_version():
14
with open(".xcode-version", "r") as file:
15
return file.read().rstrip()
16
17
18
def without_patch_version(value):
19
components = value.split(".")
20
return ".".join(components[:2])
21
22
23
def main():
24
parser = argparse.ArgumentParser()
25
parser.add_argument(
26
"--relaxed", action="store_true", help="ignore patch version when comparing"
27
)
28
ns = parser.parse_args()
29
actual_version = get_actual_version()
30
expected_version = get_expected_version()
31
if ns.relaxed:
32
actual_version = without_patch_version(actual_version)
33
expected_version = without_patch_version(expected_version)
34
if actual_version != expected_version:
35
print(
36
f"You’re using {actual_version} but you should be using {expected_version}."
37
)
38
exit(1)
39
40
41
if __name__ == "__main__":
42
main()
43
44