xref: /aosp_15_r20/external/cronet/third_party/metrics_proto/PRESUBMIT.py (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2018 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Worker"""Presubmit script for metrics_proto.
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard WorkerSee http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
8*6777b538SAndroid Build Coastguard Workerfor more details on the presubmit API built into gcl.
9*6777b538SAndroid Build Coastguard Worker"""
10*6777b538SAndroid Build Coastguard Worker
11*6777b538SAndroid Build Coastguard Worker
12*6777b538SAndroid Build Coastguard WorkerDIR_METADATA = 'DIR_METADATA'
13*6777b538SAndroid Build Coastguard WorkerREADME = 'README.chromium'
14*6777b538SAndroid Build Coastguard WorkerPRESUBMIT = 'PRESUBMIT.py'
15*6777b538SAndroid Build Coastguard WorkerPRESUBMIT_TEST = 'PRESUBMIT_test.py'
16*6777b538SAndroid Build Coastguard WorkerOWNERS = 'OWNERS'
17*6777b538SAndroid Build Coastguard Worker
18*6777b538SAndroid Build Coastguard Worker
19*6777b538SAndroid Build Coastguard Workerdef IsMetricsProtoPath(input_api, path):
20*6777b538SAndroid Build Coastguard Worker  return input_api.os_path.dirname(path) == input_api.PresubmitLocalPath()
21*6777b538SAndroid Build Coastguard Worker
22*6777b538SAndroid Build Coastguard Worker
23*6777b538SAndroid Build Coastguard Workerdef IsReadmeFile(input_api, path):
24*6777b538SAndroid Build Coastguard Worker  return (input_api.os_path.basename(path) == README and
25*6777b538SAndroid Build Coastguard Worker          IsMetricsProtoPath(input_api, path))
26*6777b538SAndroid Build Coastguard Worker
27*6777b538SAndroid Build Coastguard Worker
28*6777b538SAndroid Build Coastguard Workerdef IsImportedFile(input_api, path):
29*6777b538SAndroid Build Coastguard Worker  return (not input_api.os_path.basename(path) in (PRESUBMIT, PRESUBMIT_TEST,
30*6777b538SAndroid Build Coastguard Worker                                                  OWNERS, DIR_METADATA) and
31*6777b538SAndroid Build Coastguard Worker          IsMetricsProtoPath(input_api, path))
32*6777b538SAndroid Build Coastguard Worker
33*6777b538SAndroid Build Coastguard Worker
34*6777b538SAndroid Build Coastguard Workerdef CheckChange(input_api, output_api):
35*6777b538SAndroid Build Coastguard Worker  """Checks that all changes include a README update."""
36*6777b538SAndroid Build Coastguard Worker  paths = [af.AbsoluteLocalPath() for af in input_api.AffectedFiles()]
37*6777b538SAndroid Build Coastguard Worker  if (any(IsImportedFile(input_api, p) for p in paths) and not
38*6777b538SAndroid Build Coastguard Worker      any(IsReadmeFile(input_api, p) for p in paths)):
39*6777b538SAndroid Build Coastguard Worker    return [output_api.PresubmitError(
40*6777b538SAndroid Build Coastguard Worker            'Modifies %s without updating %s. '
41*6777b538SAndroid Build Coastguard Worker            'Changes to these files should originate upstream.' %
42*6777b538SAndroid Build Coastguard Worker            (input_api.PresubmitLocalPath(), README))]
43*6777b538SAndroid Build Coastguard Worker  return []
44*6777b538SAndroid Build Coastguard Worker
45*6777b538SAndroid Build Coastguard Worker
46*6777b538SAndroid Build Coastguard Workerdef CheckChangeOnUpload(input_api, output_api):
47*6777b538SAndroid Build Coastguard Worker  return CheckChange(input_api, output_api)
48*6777b538SAndroid Build Coastguard Worker
49*6777b538SAndroid Build Coastguard Worker
50*6777b538SAndroid Build Coastguard Workerdef CheckChangeOnCommit(input_api, output_api):
51*6777b538SAndroid Build Coastguard Worker  return CheckChange(input_api, output_api)
52