diff options
author | Steven Hardy <shardy@redhat.com> | 2016-01-12 18:46:04 +0000 |
---|---|---|
committer | Steven Hardy <shardy@redhat.com> | 2016-01-28 19:04:25 +0000 |
commit | e6273f9376813533d02bd14f8fccd1e80f59b83c (patch) | |
tree | 7adf2f398d27535c25c435f2a78b864b06915bfd /tools | |
parent | 4c2e66a6d0dce4493f200f359dea87875e5f86aa (diff) |
Update yaml-validate.py to accept files or directories
For developer usage it's helpful to have the choice to provide either
an individual files, list of files, or some mix of files and directories
as you don't necessarily want to walk everything all the time.
Change-Id: I050de123bba51402a0dbb42d71e97fd27d7ce4bc
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/yaml-validate.py | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/tools/yaml-validate.py b/tools/yaml-validate.py index cb5669a7..fe690d8c 100755 --- a/tools/yaml-validate.py +++ b/tools/yaml-validate.py @@ -16,11 +16,13 @@ import sys import traceback import yaml -base_path = sys.argv[1] -exit_val = 0 -failed_files = [] + +def exit_usage(): + print('Usage %s <yaml file or directory>' % sys.argv[0]) + sys.exit(1) def validate(filename): + print('Validating %s' % filename) try: yaml.load(open(filename).read()) except Exception: @@ -28,14 +30,31 @@ def validate(filename): return 1 return 0 -for subdir, dirs, files in os.walk(base_path): - for f in files: - if f.endswith('.yaml'): - file_path = os.path.join(subdir, f) - failed = validate(file_path) - if failed: - failed_files.append(file_path) - exit_val |= failed +if len(sys.argv) < 2: + exit_usage() + +path_args = sys.argv[1:] +exit_val = 0 +failed_files = [] + +for base_path in path_args: + if os.path.isdir(base_path): + for subdir, dirs, files in os.walk(base_path): + for f in files: + if f.endswith('.yaml'): + file_path = os.path.join(subdir, f) + failed = validate(file_path) + if failed: + failed_files.append(file_path) + exit_val |= failed + elif os.path.isfile(base_path) and base_path.endswith('.yaml'): + failed = validate(base_path) + if failed: + failed_files.append(base_path) + exit_val |= failed + else: + print('Unexpected argument %s' % base_path) + exit_usage() if failed_files: print('Validation failed on:') |