#!/usr/bin/env python
import json, sys
from os import path
from jsonschema import Draft3Validator, RefResolver

from urllib.parse import urljoin
from urllib.request import pathname2url

def path2url(path):
    return urljoin('file:', pathname2url(path))

print('-- validate json file')

jsonFileName   = sys.argv[1]
schemaFileName = sys.argv[2]

try:
	with open(schemaFileName) as schemaFile:
		with open(jsonFileName) as jsonFile:
			schema = json.load(schemaFile)
			uri = path2url('%s/schema/' % path.abspath(path.dirname(schemaFileName)))
			resolver = RefResolver(uri, referrer = schema)
			instance = json.load(jsonFile)
			Draft3Validator(schema, resolver=resolver).validate(instance)
except Exception as e:
	print('validation error: '+jsonFileName + ' '+schemaFileName+' ('+str(e)+')')
	sys.exit(1)

sys.exit(0)