#!/usr/share/ucs-test/runner /usr/bin/python2.7
## desc: Checking all UCR-info-files for invalid UTF-8-characters
## bugs: [13111]
## tags:
##  - basic
##  - apptest
## exposure: safe

from __future__ import print_function

import os
import sys

D_INFO = '/etc/univention/registry.info'
exit_code = 100

for dirname, dirnames, names in os.walk(D_INFO):
	for name in names:
		filename = os.path.join(dirname, name)
		if os.path.isfile(filename):
			with open(filename, 'rb') as f:
				for (i, line) in enumerate(f):
					try:
						line.decode('utf8')
					except UnicodeDecodeError as E:
						print('Error. Invalid UTF-8-character in file %s, line %s, at position %s' % (filename, i, E.end), file=sys.stderr)
						exit_code = 111
						break
				else:
					print("OK: %s" % (filename,))

sys.exit(exit_code)

# vim: set filetype=python :
