Added --set-interface-uri to set the main URI.
[0publish.git] / validator.py
blobb7f256118b732b00b95f5f35b664a157656a586c
1 import os
2 from zeroinstall.injector import model
3 from zeroinstall.injector.reader import InvalidInterface, update
4 import tempfile
5 from logging import warn
7 def check(data):
8 fd, tmp_name = tempfile.mkstemp(prefix = '0publish-validate-')
9 os.close(fd)
10 tmp_iface = model.Interface(tmp_name)
11 try:
12 tmp_file = file(tmp_name, 'w')
13 tmp_file.write(data)
14 tmp_file.close()
15 try:
16 update(tmp_iface, tmp_name, local = True)
17 return True
18 except InvalidInterface, ex:
19 raise
20 except Exception, ex:
21 warn("Internal error", ex)
22 raise InvalidInterface(str(ex))
23 finally:
24 os.unlink(tmp_name)