1f218ee143
Lots of potentially messy changes. Also includes a major recipe roll. Bug: chromium:1256037 Change-Id: Id05779802c5ca05921d93fa73c21930723793585 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/467980 Reviewed-by: Ravi Mistry <rmistry@google.com> Commit-Queue: Eric Boren <borenet@google.com>
72 lines
1.9 KiB
Python
Executable File
72 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python
|
|
#
|
|
# Copyright 2019 Google LLC
|
|
#
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
|
|
"""Check the DEPS file for correctness."""
|
|
|
|
|
|
from __future__ import print_function
|
|
import os
|
|
import re
|
|
import subprocess
|
|
import sys
|
|
|
|
import utils
|
|
|
|
|
|
INFRA_BOTS_DIR = os.path.dirname(os.path.realpath(__file__))
|
|
SKIA_DIR = os.path.abspath(os.path.join(INFRA_BOTS_DIR, os.pardir, os.pardir))
|
|
|
|
|
|
def main():
|
|
"""Load the DEPS file and verify that all entries are valid."""
|
|
# Find gclient.py and run that instead of simply "gclient", which calls into
|
|
# update_depot_tools.
|
|
gclient = subprocess.check_output([
|
|
utils.WHICH, utils.GCLIENT]).decode('utf-8')
|
|
gclient_py = os.path.join(os.path.dirname(gclient), 'gclient.py')
|
|
python = sys.executable or 'python'
|
|
|
|
# Obtain the DEPS mapping.
|
|
output = subprocess.check_output(
|
|
[python, gclient_py, 'revinfo'], cwd=SKIA_DIR).decode('utf-8')
|
|
|
|
# Check each entry.
|
|
errs = []
|
|
for e in output.rstrip().splitlines():
|
|
split = e.split(': ')
|
|
if len(split) != 2:
|
|
errs.append(
|
|
'Failed to parse `gclient revinfo` output; invalid format: %s' % e)
|
|
continue
|
|
if split[0] == 'skia':
|
|
continue
|
|
split = split[1].split('@')
|
|
if len(split) != 2:
|
|
errs.append(
|
|
'Failed to parse `gclient revinfo` output; invalid format: %s' % e)
|
|
continue
|
|
repo = split[0]
|
|
rev = split[1]
|
|
if 'chrome-infra-packages' in repo:
|
|
continue
|
|
if not 'googlesource.com' in repo:
|
|
errs.append(
|
|
'DEPS must be hosted on googlesource.com; %s is not allowed. '
|
|
'See http://go/new-skia-git-mirror' % repo)
|
|
if not re.match(r'^[a-z0-9]{40}$', rev):
|
|
errs.append('%s: "%s" does not look like a commit hash.' % (repo, rev))
|
|
if errs:
|
|
print('Found problems in DEPS:', file=sys.stderr)
|
|
for err in errs:
|
|
print(err, file=sys.stderr)
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|