#!/usr/bin/env python3 import glob import os.path import sys mit_copyright = open("scripts/copyright_mit.txt",'r').read() def add_cpp_copyright( f, content): global mit_copyright out = open(f,'w') out.write("/*\n") for line in mit_copyright.split('\n')[:-1]: out.write(" *"); if line.strip() != "": out.write(" %s" %line) out.write("\n") out.write(" */\n") out.write(content.strip()) out.write("\n") out.close() def add_python_copyright( f, content): global mit_copyright out = open(f,'w') for line in mit_copyright.split('\n')[:-1]: out.write("#"); if line.strip() != "": out.write(" %s" %line) out.write("\n") out.write(content.strip()) out.write("\n") out.close() def remove_comment( content ): comment=True out="" for line in content.split('\n'): if comment: if line.startswith(' */'): comment=False elif line.startswith('/*') or line.startswith(' *'): #print(line) continue else: raise Exception("ERROR: not a comment ? '%s'"% line) else: out += line + "\n" return out def remove_comment_python( content ): comment=True out="" for line in content.split('\n'): if comment and line.startswith('#'): continue else: comment = False out += line + "\n" return out def check_file( path ): root, f = os.path.split(path) if f in ['.clang-tidy', '.clang-format']: print("Skipping file: {}".format(path)) return with open(path, 'r', encoding='utf-8') as fd: content = fd.read() _, extension = os.path.splitext(f) if extension in ['.cpp', '.h', '.hpp', '.inl', '.cl', '.in', '.cs']: if not content.startswith('/*'): add_cpp_copyright(path, content) elif extension == '.py' or f in ['SConstruct', 'SConscript']: if not content.startswith('# Copyright'): add_python_copyright(path, content) elif f == 'CMakeLists.txt': if not content.startswith('# Copyright'): add_python_copyright(path, content) else: raise Exception("Unhandled file: {}".format(path)) if len(sys.argv) > 1: for path in sys.argv[1:]: check_file(path) else: for top in ['./arm_compute', './tests','./src','./examples','./utils/','./opencl-1.2-stubs/','./opengles-3.1-stubs/','./support']: for root, _, files in os.walk(top): for f in files: path = os.path.join(root, f) check_file(path)