Squashed 'third_party/flatbuffers/' content from commit acc9990ab
Change-Id: I48550d40d78fea996ebe74e9723a5d1f910de491
git-subtree-dir: third_party/flatbuffers
git-subtree-split: acc9990abd2206491480291b0f85f925110102ea
diff --git a/.travis/check-sources.sh.py b/.travis/check-sources.sh.py
new file mode 100644
index 0000000..2b001d7
--- /dev/null
+++ b/.travis/check-sources.sh.py
@@ -0,0 +1,35 @@
+import os
+import re
+import sys
+
+def check_encoding(encoding, scan_dir, regex_pattern):
+ fname = None
+ try:
+ assert encoding in ['ascii', 'utf-8'], "unexpected encoding"
+ cmp = re.compile(regex_pattern)
+ for root, dirs, files in os.walk(scan_dir):
+ fname = root
+ cmp_list = [f for f in files if cmp.search(f) is not None]
+ for f in cmp_list:
+ fname = os.path.join(root, f)
+ with open(fname, mode='rb') as test_file:
+ btext = test_file.read()
+ # check encoding
+ btext.decode(encoding=encoding, errors="strict")
+ if encoding == "utf-8" and btext.startswith(b'\xEF\xBB\xBF'):
+ raise ValueError("unexpected BOM in file")
+ # check LF line endings
+ LF = btext.count(b'\n')
+ CR = btext.count(b'\r')
+ if CR!=0:
+ raise ValueError("invalid line endings: LF({})/CR({})".format(LF, CR))
+ except Exception as err:
+ print("ERROR with [{}]: {}".format(fname, err))
+ return -1
+ else:
+ return 0
+
+if __name__ == "__main__":
+ # python check-sources.sh.py 'ascii' '.' '.*\.(cpp|h)$'
+ res = check_encoding(sys.argv[1], sys.argv[2], sys.argv[3])
+ sys.exit(0 if res == 0 else -1)