# Copyright 2018 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. """Presubmit script for components/url_pattern_index directory. See https://www.chromium.org/developers/how-tos/depottools/presubmit-scripts for more details about the presubmit API built into depot_tools. """ USE_PYTHON3 = True def CheckUrlPatternIndexFormatVersion(input_api, output_api): """ Checks the kUrlPatternIndexFormatVersion is modified when necessary. Whenever any of the following files is changed: - components/url_pattern_index/flat/url_pattern_index.fbs - components/url_pattern_index/url_pattern_index.cc and kUrlPatternIndexFormatVersion stays intact, this check returns a presubmit warning to make sure the value is updated if necessary. """ url_pattern_index_files_changed = False url_pattern_index_version_changed = False for affected_file in input_api.AffectedFiles(): basename = input_api.basename(affected_file.LocalPath()) if (basename == 'url_pattern_index.fbs' or basename == 'url_pattern_index.cc'): url_pattern_index_files_changed = True if basename == 'url_pattern_index.h': for (_, line) in affected_file.ChangedContents(): if 'constexpr int kUrlPatternIndexFormatVersion' in line: url_pattern_index_version_changed = True break out = [] if url_pattern_index_files_changed and not url_pattern_index_version_changed: out.append(output_api.PresubmitPromptWarning( 'Please make sure that url_pattern_index::kUrlPatternIndexFormatVersion' ' is modified if necessary.')) return out def CheckChangeOnUpload(input_api, output_api): return CheckUrlPatternIndexFormatVersion(input_api, output_api)