| #!/usr/bin/env vpython3 | |
| # -*- coding: UTF-8 -*- | |
| # | |
| # Copyright 2022 The Chromium Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| """ | |
| Asserts that all third_party packages are included in additional_readme_paths.json. | |
| """ | |
| import sys | |
| import json | |
| def main(argv): | |
| grd_sources = open(argv[1], 'r').read() | |
| listed_third_party_directories = open(argv[2], 'r').read() | |
| stamp_file = argv[3] | |
| grd_json = json.loads(grd_sources) | |
| listed_third_party_directories_json = json.loads( | |
| listed_third_party_directories) | |
| grd_json.sort() | |
| listed_third_party_directories_json.sort() | |
| return_code = 0 | |
| found_directories = set() | |
| missing_directories = set() | |
| for grd_file in grd_json: | |
| if grd_file.startswith("front_end/third_party"): | |
| third_party_directory_name = grd_file.split("/")[2] | |
| found_directories.add(third_party_directory_name) | |
| if third_party_directory_name not in listed_third_party_directories_json: | |
| missing_directories.add(third_party_directory_name) | |
| for missing_directory in missing_directories: | |
| print( | |
| "Directory `" + missing_directory + "`" + | |
| " is not listed in the `additional_readme_paths.json` file " + | |
| " in `front_end/third_party`. Make sure to include all third_party" | |
| + | |
| " directories in the `.json` file to ensure all licenses are listed" | |
| + " in chrome://credits.\n") | |
| return_code = 1 | |
| for listed_directory in listed_third_party_directories_json: | |
| if (listed_directory not in found_directories | |
| # TODO(crbug.com/1287519): Remove exception for codemirror 5 | |
| and not listed_directory == "codemirror" | |
| and not listed_directory == "puppeteer"): | |
| print( | |
| "Directory `" + listed_directory + "`" + | |
| " is not included in `config/gni/devtools_grd_files.gni`." + | |
| " Make sure to only include third_party directories that are shipped" | |
| + " in Chromium.\n") | |
| return_code = 1 | |
| with open(stamp_file, 'w', encoding="utf8") as fp: | |
| fp.write("") | |
| return return_code | |
| if __name__ == '__main__': | |
| sys.exit(main(sys.argv)) |