37 lines
952 B
Python
37 lines
952 B
Python
|
#! /usr/bin/env python3
|
||
|
#
|
||
|
# Fixes encoding of the project files to add UTF-8 BOM.
|
||
|
#
|
||
|
# Visual Studio insists on having the BOM in project files, and will
|
||
|
# restore it on first edit. This script will go through the relevant
|
||
|
# files and ensure the BOM is included, which should prevent too many
|
||
|
# irrelevant changesets.
|
||
|
#
|
||
|
|
||
|
from pathlib import Path
|
||
|
|
||
|
__author__ = "Steve Dower <steve.dower@python.org>"
|
||
|
__version__ = "1.0.0.0"
|
||
|
|
||
|
def fix(p):
|
||
|
with open(p, 'r', encoding='utf-8-sig') as f:
|
||
|
data = f.read()
|
||
|
with open(p, 'w', encoding='utf-8-sig') as f:
|
||
|
f.write(data)
|
||
|
|
||
|
ROOT_DIR = Path(__file__).resolve().parent
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
count = 0
|
||
|
print('Fixing:')
|
||
|
for f in ROOT_DIR.glob('*.vcxproj'):
|
||
|
print(f' - {f.name}')
|
||
|
fix(f)
|
||
|
count += 1
|
||
|
for f in ROOT_DIR.glob('*.vcxproj.filters'):
|
||
|
print(f' - {f.name}')
|
||
|
fix(f)
|
||
|
count += 1
|
||
|
print()
|
||
|
print(f'Fixed {count} files')
|