diff options
Diffstat (limited to 'codegen/lib/code/version.py')
| -rw-r--r-- | codegen/lib/code/version.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/codegen/lib/code/version.py b/codegen/lib/code/version.py new file mode 100644 index 00000000..e131a598 --- /dev/null +++ b/codegen/lib/code/version.py @@ -0,0 +1,59 @@ +import re +import os + +README_DIR = os.path.join(os.path.dirname(__file__), '../../../README.md') +VERSION_REGEX = r'\*Currently supported Minecraft version: `(.*)`.\*' + + +def get_version_id() -> str: + with open(README_DIR, 'r') as f: + readme_text = f.read() + + version_line_match = re.search(VERSION_REGEX, readme_text) + if version_line_match: + version_id = version_line_match.group(1) + return version_id + else: + raise Exception('Could not find version id in README.md') + + +def set_version_id(version_id: str) -> None: + with open(README_DIR, 'r') as f: + readme_text = f.read() + + version_line_match = re.search(VERSION_REGEX, readme_text) + if version_line_match: + readme_text = readme_text.replace( + version_line_match.group(1), version_id) + else: + raise Exception('Could not find version id in README.md') + + with open(README_DIR, 'w') as f: + f.write(readme_text) + + +def get_protocol_version() -> str: + # azalea-protocol/src/packets/mod.rs + # pub const PROTOCOL_VERSION: u32 = 758; + with open('../azalea-protocol/src/packets/mod.rs', 'r') as f: + mod_rs = f.read().splitlines() + for line in mod_rs: + if line.strip().startswith('pub const PROTOCOL_VERSION'): + return line.strip().split(' ')[-1].strip(';') + raise Exception( + 'Could not find protocol version in azalea-protocol/src/packets/mod.rs') + + +def set_protocol_version(protocol_version: str) -> None: + with open('../azalea-protocol/src/packets/mod.rs', 'r') as f: + mod_rs = f.read().splitlines() + for i, line in enumerate(mod_rs): + if line.strip().startswith('pub const PROTOCOL_VERSION'): + mod_rs[i] = f'pub const PROTOCOL_VERSION: u32 = {protocol_version};' + break + else: + raise Exception( + 'Could not find protocol version in azalea-protocol/src/packets/mod.rs') + + with open('../azalea-protocol/src/packets/mod.rs', 'w') as f: + f.write('\n'.join(mod_rs)) |
