blob: 22a49909da7cdad0d7f63990ba7f943c7ddc2846 [file] [log] [blame]
Anthony Sottile8f615292022-01-15 19:24:05 -05001from __future__ import annotations
2
Jeremiah Gowdyd18bd5b2020-10-04 18:45:54 -07003import argparse
Jeremiah Gowdyd18bd5b2020-10-04 18:45:54 -07004from typing import Sequence
5
6
Anthony Sottile8f615292022-01-15 19:24:05 -05007def main(argv: Sequence[str] | None = None) -> int:
Jeremiah Gowdyd18bd5b2020-10-04 18:45:54 -07008 parser = argparse.ArgumentParser()
9 parser.add_argument('filenames', nargs='*', help='Filenames to check')
10 args = parser.parse_args(argv)
11
12 retv = 0
13
14 for filename in args.filenames:
15 with open(filename, 'rb') as f_b:
16 bts = f_b.read(3)
17
18 if bts == b'\xef\xbb\xbf':
19 with open(filename, newline='', encoding='utf-8-sig') as f:
20 contents = f.read()
21 with open(filename, 'w', newline='', encoding='utf-8') as f:
22 f.write(contents)
23
24 print(f'{filename}: removed byte-order marker')
25 retv = 1
26
27 return retv
28
29
30if __name__ == '__main__':
Anthony Sottile39ab2ed2021-10-23 13:23:50 -040031 raise SystemExit(main())