#!/usr/bin/python3 # # Copyright (C) 2021 Richard Hughes # Copyright (C) 2021 Mario Limonciello # # SPDX-License-Identifier: LGPL-2.1+ import glob import os import sys def __get_license(fn: str) -> str: with open(fn, "r") as f: for line in f.read().split("\n"): if line.find("SPDX-License-Identifier:") > 0: return line.split(":")[1] return "" def test_files() -> int: rc: int = 0 build_dir = "" for fn in glob.glob("**/*.[c|h|py|sh]", recursive=True): if "meson-private" in fn: continue if os.path.isdir(fn): continue if "config.h" in fn: build_dir = os.path.dirname(fn) continue if build_dir and fn.startswith(build_dir): continue if fn.startswith("subprojects"): continue lic = __get_license(fn) if not lic: print("{} does not specify a license".format(fn)) rc = 1 continue if not "GPL" in lic: print("{} does not contain LGPL or GPL ({})".format(fn, lic)) rc = 1 continue return rc if __name__ == "__main__": # all done! sys.exit(test_files())