diff options
| author | Lexi Winter <lexi@le-fay.org> | 2025-06-29 19:25:29 +0100 |
|---|---|---|
| committer | Lexi Winter <lexi@le-fay.org> | 2025-06-29 19:25:29 +0100 |
| commit | bc524d70253a4ab2fe40c3ca3e5666e267c0a4d1 (patch) | |
| tree | 1e629e7b46b1d9972a973bc93fd100bcebd395be /tools/scripts/checkLicense.py | |
| download | nihil-vendor/catch2/3.8.1.tar.gz nihil-vendor/catch2/3.8.1.tar.bz2 | |
import catch2 3.8.1vendor/catch2/3.8.1vendor/catch2
Diffstat (limited to 'tools/scripts/checkLicense.py')
| -rwxr-xr-x | tools/scripts/checkLicense.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tools/scripts/checkLicense.py b/tools/scripts/checkLicense.py new file mode 100755 index 0000000..7078d3e --- /dev/null +++ b/tools/scripts/checkLicense.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 + +import sys +import glob + +correct_licence = """\ + +// Copyright Catch2 Authors +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE.txt or copy at +// https://www.boost.org/LICENSE_1_0.txt) + +// 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]) + + 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 + 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 + # Add 'extras' after the amalgamted files are regenerated with the new script (past 3.4.0) + roots = ['src/catch2', 'tests', 'examples', 'fuzzing'] + for root in roots: + failed += check_licences_in_path(root) + + if failed: + print('{} files are missing licence'.format(failed)) + sys.exit(1) + +if __name__ == "__main__": + check_licences() |
