mirror of
https://github.com/Dev-Wiki/HarmonyDevTools.git
synced 2025-08-30 01:14:44 +08:00
87 lines
2.8 KiB
Python
87 lines
2.8 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
版本信息更新脚本
|
||
用于快速更新版本号
|
||
"""
|
||
|
||
import re
|
||
import os
|
||
|
||
def update_version_info(new_version):
|
||
"""更新版本信息文件"""
|
||
version_file = "version_info.txt"
|
||
|
||
if not os.path.exists(version_file):
|
||
print(f"错误:找不到 {version_file} 文件")
|
||
return False
|
||
|
||
# 解析版本号
|
||
version_parts = new_version.split('.')
|
||
if len(version_parts) < 3:
|
||
print("错误:版本号格式应为 x.y.z (例如: 1.4.0)")
|
||
return False
|
||
|
||
try:
|
||
major, minor, patch = map(int, version_parts[:3])
|
||
build = 0 # 第四位默认为0
|
||
except ValueError:
|
||
print("错误:版本号必须为数字")
|
||
return False
|
||
|
||
# 读取文件内容
|
||
with open(version_file, 'r', encoding='utf-8') as f:
|
||
content = f.read()
|
||
|
||
# 更新版本号
|
||
content = re.sub(r'filevers=\(\d+, \d+, \d+, \d+\)',
|
||
f'filevers=({major}, {minor}, {patch}, {build})', content)
|
||
content = re.sub(r'prodvers=\(\d+, \d+, \d+, \d+\)',
|
||
f'prodvers=({major}, {minor}, {patch}, {build})', content)
|
||
content = re.sub(r"StringStruct\(u'FileVersion', u'[^']+'\)",
|
||
f"StringStruct(u'FileVersion', u'{new_version}')", content)
|
||
content = re.sub(r"StringStruct\(u'ProductVersion', u'[^']+'\)",
|
||
f"StringStruct(u'ProductVersion', u'{new_version}')", content)
|
||
|
||
# 写回文件
|
||
with open(version_file, 'w', encoding='utf-8') as f:
|
||
f.write(content)
|
||
|
||
print(f"版本信息已更新为: {new_version}")
|
||
print(f"下次构建将生成: HarmonyDevTools_v{new_version.replace('.', '_')}.exe")
|
||
print("注意:构建时会通过命令行参数传递版本号,main.py中的VERSION变量保持不变")
|
||
return True
|
||
|
||
def main():
|
||
"""主函数"""
|
||
print("=" * 50)
|
||
print("HarmonyDevTools 版本更新工具")
|
||
print("=" * 50)
|
||
|
||
# 显示当前版本
|
||
if os.path.exists("version_info.txt"):
|
||
with open("version_info.txt", 'r', encoding='utf-8') as f:
|
||
content = f.read()
|
||
match = re.search(r"StringStruct\(u'FileVersion', u'([^']+)'\)", content)
|
||
if match:
|
||
current_version = match.group(1)
|
||
print(f"当前版本: {current_version}")
|
||
|
||
# 获取新版本号
|
||
print("\n请输入新版本号 (格式: x.y.z,例如: 1.4.0)")
|
||
new_version = input("新版本号: ").strip()
|
||
|
||
if not new_version:
|
||
print("未输入版本号,操作取消")
|
||
return
|
||
|
||
# 更新版本信息
|
||
if update_version_info(new_version):
|
||
print("\n版本更新完成!")
|
||
print("现在可以运行 python build.py 来构建新版本")
|
||
else:
|
||
print("\n版本更新失败!")
|
||
|
||
if __name__ == "__main__":
|
||
main()
|