blob: e9bb8f028ba570f6b596c9228264f4b2c048230b [file] [log] [blame]
from __future__ import print_function
import argparse
import sys
import yaml
try:
from yaml.cyaml import CSafeLoader as Loader
except ImportError: # pragma: no cover (no libyaml-dev / pypy)
Loader = yaml.SafeLoader
def _load_all(*args, **kwargs):
# need to exhaust the generator
return tuple(yaml.load_all(*args, **kwargs))
def check_yaml(argv=None):
parser = argparse.ArgumentParser()
parser.add_argument(
'-m', '--allow-multiple-documents', dest='yaml_load_fn',
action='store_const', const=_load_all, default=yaml.load,
)
parser.add_argument('filenames', nargs='*', help='Yaml filenames to check.')
args = parser.parse_args(argv)
retval = 0
for filename in args.filenames:
try:
args.yaml_load_fn(open(filename), Loader=Loader)
except yaml.YAMLError as exc:
print(exc)
retval = 1
return retval
if __name__ == '__main__':
sys.exit(check_yaml())