blob: 0407371ebc5e10523dede7c50606c4f5e7e855a9 [file] [log] [blame]
Anthony Sottile8f615292022-01-15 19:24:05 -05001from __future__ import annotations
2
Semyon Maryasinae70f7e2019-03-28 01:13:45 +03003import argparse
Daniël van Noordfc88f3f2022-05-24 08:44:13 +02004import sys
Semyon Maryasinae70f7e2019-03-28 01:13:45 +03005from typing import Sequence
6
Daniël van Noordfc88f3f2022-05-24 08:44:13 +02007if sys.version_info >= (3, 11): # pragma: >=3.11 cover
8 import tomllib
9else: # pragma: <3.11 cover
10 import tomli as tomllib
Semyon Maryasinae70f7e2019-03-28 01:13:45 +030011
12
Anthony Sottile8f615292022-01-15 19:24:05 -050013def main(argv: Sequence[str] | None = None) -> int:
Semyon Maryasinae70f7e2019-03-28 01:13:45 +030014 parser = argparse.ArgumentParser()
15 parser.add_argument('filenames', nargs='*', help='Filenames to check.')
16 args = parser.parse_args(argv)
17
18 retval = 0
19 for filename in args.filenames:
20 try:
Daniël van Noordfc88f3f2022-05-24 08:44:13 +020021 with open(filename, mode='rb') as fp:
22 tomllib.load(fp)
23 except tomllib.TOMLDecodeError as exc:
Anthony Sottilef5c42a02020-02-05 11:10:42 -080024 print(f'{filename}: {exc}')
Semyon Maryasinae70f7e2019-03-28 01:13:45 +030025 retval = 1
26 return retval
27
28
29if __name__ == '__main__':
Anthony Sottile39ab2ed2021-10-23 13:23:50 -040030 raise SystemExit(main())