summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorSteven Hardy <shardy@redhat.com>2016-01-12 18:46:04 +0000
committerSteven Hardy <shardy@redhat.com>2016-01-28 19:04:25 +0000
commite6273f9376813533d02bd14f8fccd1e80f59b83c (patch)
tree7adf2f398d27535c25c435f2a78b864b06915bfd /tools
parent4c2e66a6d0dce4493f200f359dea87875e5f86aa (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-xtools/yaml-validate.py41
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:')