|
1 | 1 | #!/usr/bin/env python3 |
2 | | -import os |
3 | 2 | import sys |
4 | 3 |
|
5 | 4 | def bump_version(tagVersion, filename, flavour): |
6 | | - """ |
7 | | - Bumps the version number in the specified file. |
| 5 | + with open(filename, "rb") as f: # open as binary to see raw bytes |
| 6 | + raw = f.read() |
8 | 7 |
|
9 | | - Args: |
10 | | - filename: The name of the file to update. |
| 8 | + print(f"DEBUG: raw file bytes: {repr(raw)}", file=sys.stderr) |
11 | 9 |
|
12 | | - Returns: |
13 | | - The new version number. |
14 | | - """ |
| 10 | + lines = raw.decode("utf-8-sig").splitlines() # utf-8-sig strips BOM if present |
15 | 11 |
|
16 | | - with open(filename, "r") as f: |
17 | | - lines = f.readlines() |
| 12 | + print(f"DEBUG: lines: {lines}", file=sys.stderr) |
18 | 13 |
|
19 | 14 | releaseVersion = None |
20 | 15 | stagingVersion = None |
21 | 16 | nightlyVersion = None |
22 | 17 |
|
23 | 18 | for line in lines: |
24 | | - if line.startswith("releaseVersion="): |
25 | | - releaseVersion = line.split("=")[1].strip() |
26 | | - |
27 | | - if line.startswith("stagingVersion="): |
28 | | - stagingVersion = line.split("=")[1].strip() |
29 | | - |
30 | | - if line.startswith("nightlyVersion="): |
31 | | - nightlyVersion = line.split("=")[1].strip() |
32 | | - |
33 | | - """ |
34 | | - if line.startswith("tagVersion="): |
35 | | - tagVersion = line.split("=")[1].strip() |
36 | | - """ |
| 19 | + line = line.strip() |
| 20 | + print(f"DEBUG: processing line: {repr(line)}", file=sys.stderr) |
| 21 | + if not line or "=" not in line: |
| 22 | + continue |
| 23 | + key, _, value = line.partition("=") |
| 24 | + key = key.strip() |
| 25 | + value = value.strip() |
| 26 | + print(f"DEBUG: key={repr(key)} value={repr(value)}", file=sys.stderr) |
| 27 | + if key == "releaseVersion": |
| 28 | + releaseVersion = value |
| 29 | + elif key == "stagingVersion": |
| 30 | + stagingVersion = value |
| 31 | + elif key == "nightlyVersion": |
| 32 | + nightlyVersion = value |
| 33 | + |
| 34 | + print(f"DEBUG: releaseVersion={releaseVersion}, stagingVersion={stagingVersion}, nightlyVersion={nightlyVersion}", file=sys.stderr) |
37 | 35 |
|
38 | 36 | if releaseVersion is None: |
39 | 37 | raise ValueError("Could not find releaseVersion in file") |
40 | | - |
41 | 38 | if stagingVersion is None: |
42 | 39 | raise ValueError("Could not find stagingVersion in file") |
43 | | - |
44 | 40 | if nightlyVersion is None: |
45 | 41 | raise ValueError("Could not find nightlyVersion in file") |
46 | | - |
47 | 42 | if tagVersion is None: |
48 | | - raise ValueError("Could not find tagVersion in file") |
| 43 | + raise ValueError("Could not find tagVersion in args") |
49 | 44 |
|
50 | | - if flavour == "refs/heads/master": |
51 | | - releaseVersion = int(releaseVersion) + 1 |
| 45 | + releaseVersion = int(releaseVersion) |
| 46 | + stagingVersion = int(stagingVersion) |
| 47 | + nightlyVersion = int(nightlyVersion) |
| 48 | + tagVersion = int(tagVersion) |
| 49 | + |
| 50 | + if flavour in ("refs/heads/master", "master"): |
| 51 | + releaseVersion += 1 |
52 | 52 | stagingVersion = 0 |
53 | 53 | nightlyVersion = 0 |
54 | | - |
55 | | - elif flavour == "refs/heads/staging": |
56 | | - stagingVersion = int(stagingVersion) + 1 |
| 54 | + elif flavour in ("refs/heads/staging", "staging"): |
| 55 | + stagingVersion += 1 |
57 | 56 | nightlyVersion = 0 |
58 | | - |
59 | 57 | else: |
60 | | - nightlyVersion = int(nightlyVersion) + 1 |
| 58 | + nightlyVersion += 1 |
61 | 59 |
|
62 | | - tagVersion = int(tagVersion) + 1 |
63 | | - |
64 | | - return f"""releaseVersion={str(releaseVersion)} |
65 | | -stagingVersion={str(stagingVersion)} |
66 | | -nightlyVersion={str(nightlyVersion)} |
67 | | -versionName={str(releaseVersion)}.{str(stagingVersion)}.{str(nightlyVersion)} |
68 | | -tagVersion={str(tagVersion)}""" |
| 60 | + tagVersion += 1 |
69 | 61 |
|
| 62 | + return ( |
| 63 | + f"releaseVersion={releaseVersion}\n" |
| 64 | + f"stagingVersion={stagingVersion}\n" |
| 65 | + f"nightlyVersion={nightlyVersion}\n" |
| 66 | + f"versionName={releaseVersion}.{stagingVersion}.{nightlyVersion}\n" |
| 67 | + f"tagVersion={tagVersion}" |
| 68 | + ) |
70 | 69 |
|
71 | 70 | if __name__ == "__main__": |
72 | | - filename = "version.properties" |
73 | | - |
74 | | - tag = sys.argv[1] |
75 | | - flavour = sys.argv[2] |
76 | | - version = bump_version(tag, filename, flavour) |
77 | | - print(version) |
| 71 | + filename = "version.properties" |
| 72 | + tag = sys.argv[1] |
| 73 | + flavour = sys.argv[2] |
| 74 | + print(f"DEBUG: tag={repr(tag)}, flavour={repr(flavour)}, filename={repr(filename)}", file=sys.stderr) |
| 75 | + version = bump_version(tag, filename, flavour) |
| 76 | + print(version) |
0 commit comments