上传文件至 /
This commit is contained in:
61
miuitask.py
Normal file
61
miuitask.py
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import os
|
||||||
|
import glob
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
import stat
|
||||||
|
import platform
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def parse_version(ver_str: str):
|
||||||
|
"""解析版本号为整数元组"""
|
||||||
|
parts = ver_str.split(".")
|
||||||
|
nums = [int(p) for p in parts]
|
||||||
|
while len(nums) < 3:
|
||||||
|
nums.append(0)
|
||||||
|
return tuple(nums)
|
||||||
|
|
||||||
|
def get_system_arch():
|
||||||
|
"""获取系统架构: amd64 / arm64"""
|
||||||
|
machine = platform.machine().lower()
|
||||||
|
if machine in ("x86_64", "amd64"):
|
||||||
|
return "amd64"
|
||||||
|
elif machine in ("aarch64", "arm64"):
|
||||||
|
return "arm64"
|
||||||
|
else:
|
||||||
|
print(f"不支持的架构: {machine}")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""选择并运行匹配架构的最新版本 bin 文件"""
|
||||||
|
arch = get_system_arch()
|
||||||
|
print(f"系统架构: {arch}")
|
||||||
|
|
||||||
|
bin_files = glob.glob("xiaomi-invite*.bin")
|
||||||
|
if not bin_files:
|
||||||
|
print("未找到 bin 文件")
|
||||||
|
return
|
||||||
|
|
||||||
|
pattern = re.compile(rf"xiaomi-invite-v([\d.]+)-linux-{arch}\.bin", re.IGNORECASE)
|
||||||
|
|
||||||
|
candidates = []
|
||||||
|
for f in bin_files:
|
||||||
|
m = pattern.search(f)
|
||||||
|
if m:
|
||||||
|
candidates.append((parse_version(m.group(1)), f))
|
||||||
|
|
||||||
|
if not candidates:
|
||||||
|
print(f"无匹配 {arch} 文件")
|
||||||
|
return
|
||||||
|
|
||||||
|
latest_ver, latest_file = max(candidates, key=lambda x: x[0])
|
||||||
|
print(f"运行: {latest_file} (版本 {'.'.join(map(str, latest_ver))})")
|
||||||
|
|
||||||
|
os.chmod(latest_file, os.stat(latest_file).st_mode | stat.S_IEXEC)
|
||||||
|
try:
|
||||||
|
subprocess.run(["./" + latest_file], check=True)
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
print(f"运行失败,退出码 {e.returncode}")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
BIN
xiaomi-invite-v1.0.0-linux-amd64.bin
Normal file
BIN
xiaomi-invite-v1.0.0-linux-amd64.bin
Normal file
Binary file not shown.
BIN
xiaomi-invite-v1.0.0-linux-arm64.bin
Normal file
BIN
xiaomi-invite-v1.0.0-linux-arm64.bin
Normal file
Binary file not shown.
BIN
xiaomi-invite-v1.0.0-windows-amd64.exe
Normal file
BIN
xiaomi-invite-v1.0.0-windows-amd64.exe
Normal file
Binary file not shown.
Reference in New Issue
Block a user