Commit 259d6bb1 authored by Edward Lesmes's avatar Edward Lesmes Committed by LUCI CQ

git-cl: Remove formatting support for dart.

The support for Dart in canned_checks.CheckPatchFormatted can be removed.
It was used in Chromium, when Chromium included a Dart SDK in its
checkout.
Dart was removed from Chromium years ago, and none of the current Dart
repositories use this in their presubmit.

Current repositories using Dart and depot_tools are
dart.googlesource.com/sdk and Flutter engine.
The SDK source tree has extensive custom code written for format checking
in the presubmit, and Flutter engine has none.
So adapting the exiting code to work with a new SDK location, or
searching the path for any Dart SDK (which would be too fragile) would
not be useful for these projects.

The support code was introduced in:
https://codereview.chromium.org/933383002

Bug: 1075502
Change-Id: I1ceed1ed6c1b4ff05071b0db1c52016f03c47c9b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2168851Reviewed-by: 's avatarAnthony Polito <apolito@google.com>
Reviewed-by: 's avatarJosip Sokcevic <sokcevic@google.com>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
parent 50c6d8d3
#!/usr/bin/python
# Copyright 2015 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.
"""Redirects to the version of dartfmt checked into a gclient repo.
dartfmt binaries are pulled down during gclient sync in the mojo repo.
This tool is named dart_format.py instead of dartfmt to parallel
clang_format.py, which is in this same repository."""
from __future__ import print_function
import os
import subprocess
import sys
import gclient_paths
class NotFoundError(Exception):
"""A file could not be found."""
def __init__(self, e):
Exception.__init__(self,
'Problem while looking for dartfmt in Chromium source tree:\n'
' %s' % e)
def FindDartFmtToolInChromiumTree():
"""Return a path to the dartfmt executable, or die trying."""
primary_solution_path = gclient_paths.GetPrimarySolutionPath()
if not primary_solution_path:
raise NotFoundError(
'Could not find checkout in any parent of the current path.')
dartfmt_path = os.path.join(primary_solution_path, 'third_party', 'dart-sdk',
'dart-sdk', 'bin', 'dartfmt')
if not os.path.exists(dartfmt_path):
raise NotFoundError('File does not exist: %s' % dartfmt_path)
return dartfmt_path
def main(args):
try:
tool = FindDartFmtToolInChromiumTree()
except NotFoundError as e:
print(e, file=sys.stderr)
sys.exit(1)
# Add some visibility to --help showing where the tool lives, since this
# redirection can be a little opaque.
help_syntax = ('-h', '--help', '-help', '-help-list', '--help-list')
if any(match in args for match in help_syntax):
print('\nDepot tools redirects you to the dartfmt at:\n %s\n' % tool)
return subprocess.call([tool] + sys.argv[1:])
if __name__ == '__main__':
sys.exit(main(sys.argv))
......@@ -34,7 +34,6 @@ import zlib
from third_party import colorama
import auth
import clang_format
import dart_format
import fix_encoding
import gclient_utils
import gerrit_util
......@@ -4872,7 +4871,6 @@ def CMDformat(parser, args):
x for x in diff_files if MatchingFileType(x, CLANG_EXTS)
]
python_diff_files = [x for x in diff_files if MatchingFileType(x, ['.py'])]
dart_diff_files = [x for x in diff_files if MatchingFileType(x, ['.dart'])]
gn_diff_files = [x for x in diff_files if MatchingFileType(x, GN_EXTS)]
top_dir = settings.GetRoot()
......@@ -4951,23 +4949,6 @@ def CMDformat(parser, args):
cmd += ['-i']
RunCommand(cmd, cwd=top_dir)
# Dart's formatter does not have the nice property of only operating on
# modified chunks, so hard code full.
if dart_diff_files:
try:
command = [dart_format.FindDartFmtToolInChromiumTree()]
if not opts.dry_run and not opts.diff:
command.append('-w')
command.extend(dart_diff_files)
stdout = RunCommand(command, cwd=top_dir)
if opts.dry_run and stdout:
return_value = 2
except dart_format.NotFoundError:
print('Warning: Unable to check Dart code formatting. Dart SDK not '
'found in this checkout. Files in other languages are still '
'formatted.')
# Format GN build files. Always run on full build files for canonical form.
if gn_diff_files:
cmd = ['gn', 'format']
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment