46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
#!/usr/bin/python3
|
|
import platform
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
import re
|
|
try:
|
|
import charset_normalizer
|
|
except ImportError:
|
|
result = subprocess.run([sys.executable, '--version', '--version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
|
|
output = result.stdout + result.stderr
|
|
if re.search(r'\bMSC\b', output, re.IGNORECASE):
|
|
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'charset_normalizer'])
|
|
else:
|
|
MINGW_PACKAGE_PREFIX = "mingw-w64-clang-aarch64" if platform.machine() == "ARM64" else "mingw-w64-clang-x86_64"
|
|
subprocess.check_call(['powershell', 'pacman', '--noconfirm', '-S', '--needed', f"{MINGW_PACKAGE_PREFIX}-python-charset-normalizer"])
|
|
finally:
|
|
from charset_normalizer import detect
|
|
|
|
langfilePath = sys.argv[1]
|
|
AppVer = sys.argv[2]
|
|
|
|
# Detect the encoding of the file
|
|
with open(langfilePath, 'rb') as file:
|
|
raw_data = file.read()
|
|
detected_encoding = detect(raw_data)['encoding']
|
|
print(f"(INFO): temporarily patching {detected_encoding} {langfilePath} with {AppVer}")
|
|
|
|
# Read the file content with detected encoding
|
|
with open(langfilePath, 'r', encoding=detected_encoding) as file:
|
|
lines = file.readlines()
|
|
|
|
# Patch 'SetupWindowTitle' and 'UninstallAppFullTitle'
|
|
for i, line in enumerate(lines):
|
|
if 'SetupWindowTitle' in line:
|
|
before = line.strip()
|
|
after = re.sub(r'%1', f'%1 {AppVer}', before)
|
|
lines[i] = line.replace(before, after)
|
|
if 'UninstallAppFullTitle' in line:
|
|
before = line.strip()
|
|
after = re.sub(r'%1', f'%1 {AppVer}', before)
|
|
lines[i] = line.replace(before, after)
|
|
|
|
# Write the patched content back to the file using the detected encoding
|
|
with open(langfilePath, 'w', encoding=detected_encoding) as file:
|
|
file.writelines(lines)
|