Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Extend checkLicense.py to also check tests
- Loading branch information
Showing
2 changed files
with
36 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,45 @@ | ||
#!/usr/bin/env python3 | ||
import os | ||
import sys | ||
|
||
|
||
def get_license(): | ||
with open("src/catch2/catch_all.hpp", "r") as f: | ||
license = f.readlines()[0:7] | ||
import sys | ||
import glob | ||
|
||
return license | ||
correct_licence = """\ | ||
// 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) | ||
def check_license(license): | ||
failed = 0 | ||
base_dir = "src/catch2/" | ||
// SPDX-License-Identifier: BSL-1.0 | ||
""" | ||
|
||
# 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] | ||
def check_licence_in_file(filename: str) -> bool: | ||
with open(filename, 'r') as f: | ||
file_preamble = ''.join(f.readlines()[:7]) | ||
|
||
if file_license != license: | ||
print("File %s does not have license" % file) | ||
failed = 1 | ||
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 | ||
|
||
|
||
license = get_license() | ||
status = check_license(license) | ||
sys.exit(status) | ||
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) | ||
|
||
if __name__ == "__main__": | ||
check_licences() |