diff --git a/tests/SelfTest/IntrospectiveTests/Clara.tests.cpp b/tests/SelfTest/IntrospectiveTests/Clara.tests.cpp index 054cda55..f6110a7b 100644 --- a/tests/SelfTest/IntrospectiveTests/Clara.tests.cpp +++ b/tests/SelfTest/IntrospectiveTests/Clara.tests.cpp @@ -1,3 +1,4 @@ + // Copyright Catch2 Authors // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at diff --git a/tools/scripts/checkLicense.py b/tools/scripts/checkLicense.py index 3c2a14f4..634b0bfa 100755 --- a/tools/scripts/checkLicense.py +++ b/tools/scripts/checkLicense.py @@ -1,32 +1,45 @@ #!/usr/bin/env python3 -import os + import sys +import glob +correct_licence = """\ -def get_license(): - with open("src/catch2/catch_all.hpp", "r") as f: - license = f.readlines()[0:7] +// Copyright Catch2 Authors +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// https://www.boost.org/LICENSE_1_0.txt) - return license +// SPDX-License-Identifier: BSL-1.0 +""" +def check_licence_in_file(filename: str) -> bool: + with open(filename, 'r') as f: + file_preamble = ''.join(f.readlines()[:7]) -def check_license(license): + if correct_licence != file_preamble: + print('File {} does not have proper licence'.format(filename)) + return False + return True + +def check_licences_in_path(path: str) -> int: failed = 0 - base_dir = "src/catch2/" - - # The _ represents the list of directories in base_dir - for root, _, files in os.walk(base_dir): - for file in files: - with open(root + "/" + file, "r") as f: - file_license = f.readlines()[0:7] - - if file_license != license: - print("File %s does not have license" % file) - failed = 1 - + files_to_check = glob.glob(path + '/**/*.cpp', recursive=True) \ + + glob.glob(path + '/**/*.hpp', recursive=True) + for file in files_to_check: + if not check_licence_in_file(file): + failed += 1 return failed +def check_licences(): + failed = 0 + roots = ['src/catch2', 'tests'] + for root in roots: + failed += check_licences_in_path(root) + + if failed: + print('{} files are missing licence'.format(failed)) + sys.exit(1) -license = get_license() -status = check_license(license) -sys.exit(status) +if __name__ == "__main__": + check_licences()