| #!/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)) |