13 app_dir = Path(
"./App")
15 if not app_dir.exists():
16 print(f
"Error: Directory '{app_dir}' does not exist")
22 old_version_string = f
"{old_version}.0"
23 new_version_string = f
"{new_version}.0"
25 old_version_comma_escaped = re.escape(old_version_comma)
27 rc_files = list(app_dir.rglob(
"*.rc"))
30 print(f
"No .rc files found in {app_dir}")
34 for file_path
in rc_files:
36 lines = file_path.read_text(encoding=
'utf-8').splitlines(keepends=
True)
42 trimmed = line.lstrip()
44 if trimmed.startswith(
"FILEVERSION")
and re.search(old_version_comma_escaped, line):
45 new_line = re.sub(old_version_comma_escaped, new_version_comma, line)
48 elif trimmed.startswith(
"PRODUCTVERSION")
and re.search(old_version_comma_escaped, line):
49 new_line = re.sub(old_version_comma_escaped, new_version_comma, line)
52 elif 'VALUE "FileVersion",' in line:
53 parts = line.split(
'"')
54 if len(parts) > 3
and parts[3] == old_version_string:
55 parts[3] = new_version_string
56 new_line =
'"'.join(parts)
59 elif 'VALUE "ProductVersion",' in line:
60 parts = line.split(
'"')
61 if len(parts) > 3
and parts[3] == old_version_string:
62 parts[3] = new_version_string
63 new_line =
'"'.join(parts)
66 updated_lines.append(new_line)
69 file_path.write_text(
''.join(updated_lines), encoding=
'utf-8')
72 except Exception
as e:
73 print(f
"Error processing {file_path}: {e}")
75 print(f
"Updated .rc files from {old_version} to {new_version}")
76 print(f
"Files modified: {files_updated}/{len(rc_files)}")