summaryrefslogtreecommitdiff
path: root/old/scripts/yaml-jsonschema
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2017-07-07 10:01:07 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2017-07-07 10:01:07 +0000
commitf6046f9b54c1f14d12a67fa66ca0c881b49e8ceb (patch)
tree7c4d5b1aa87b991fecb0b2c585514069947c3f0a /old/scripts/yaml-jsonschema
parentdeba555368fd21316025c5ee0eaaf517b938775e (diff)
downloaddefinitions-f6046f9b54c1f14d12a67fa66ca0c881b49e8ceb.tar.gz
Move old Baserock format definitions into old/ directory
Diffstat (limited to 'old/scripts/yaml-jsonschema')
-rwxr-xr-xold/scripts/yaml-jsonschema50
1 files changed, 50 insertions, 0 deletions
diff --git a/old/scripts/yaml-jsonschema b/old/scripts/yaml-jsonschema
new file mode 100755
index 00000000..64f52a79
--- /dev/null
+++ b/old/scripts/yaml-jsonschema
@@ -0,0 +1,50 @@
+#!/usr/bin/env python
+# Copyright (C) 2015 Codethink Limited
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+'''A tool to validate YAML files against the JSON-Schema schemas.
+
+This wraps Python `jsonschema` module so that YAML schemas can be understood
+and YAML data can be validated.
+
+Usage: yaml-jsonschema SCHEMA INPUT1 [INPUT2, ...]
+
+'''
+
+
+import jsonschema
+import yaml
+
+import sys
+
+
+schema_file = sys.argv[1]
+input_files = sys.argv[2:]
+
+
+with open(schema_file) as f:
+ schema = yaml.load(f)
+
+
+for input_file in input_files:
+ with open(input_file) as f:
+ data = yaml.load(f)
+
+ try:
+ jsonschema.validate(data, schema)
+ print("%s: valid" % input_file)
+ except jsonschema.ValidationError as e:
+ # Print 'e' instead of 'e.message' for more information!
+ print("%s: %s" % (input_file, e.message))