[depot_tools] add google_java_format.py
google_java_format.py is a simple wrapper script that finds and executes the google-java-format binary from Chromium tree. This CL moves the corresponding function from git_cl.py so that the logic can be executed without git_cl.py. This is the same strcture used in git_cl.py for running other language formatters. - clang_format.py - swift_format.py - rustfmt.py - gn.py With this patch, google-java-format can be used to run to formatter a java file in a chromium tree that is located in a non git checkout. Change-Id: I5f1b845040b28c0a8f15dd2e7c48c83ce2d9df97 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5525851 Reviewed-by: Gavin Mak <gavinmak@google.com> Commit-Queue: Scott Lee <ddoman@chromium.org>changes/51/5525851/2
parent
fd81abb19d
commit
a76c50e296
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright 2014 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.
|
||||
|
||||
base_dir=$(dirname "$0")
|
||||
|
||||
PYTHONDONTWRITEBYTECODE=1 exec python3 "$base_dir/google_java_format.py" "$@"
|
@ -0,0 +1,12 @@
|
||||
@echo off
|
||||
:: Copyright 2014 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.
|
||||
setlocal
|
||||
|
||||
:: Ensure that "depot_tools" is somewhere in PATH so this tool can be used
|
||||
:: standalone, but allow other PATH manipulations to take priority.
|
||||
set PATH=%PATH%;%~dp0
|
||||
|
||||
:: Defer control.
|
||||
python3 "%~dp0\google_java_format.py" %*
|
@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright 2014 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 google-java-format checked into the Chrome tree.
|
||||
|
||||
google-java-format executable is pulled down from the cipd storage whenever
|
||||
you sync Chrome. This script finds and runs the executable.
|
||||
"""
|
||||
|
||||
import gclient_paths
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
def FindGoogleJavaFormat():
|
||||
"""Returns the path to the google-java-format executable."""
|
||||
# Allow non-chromium projects to use a custom location.
|
||||
primary_solution_path = gclient_paths.GetPrimarySolutionPath()
|
||||
if primary_solution_path:
|
||||
override = os.environ.get('GOOGLE_JAVA_FORMAT_PATH')
|
||||
if override:
|
||||
# Make relative to solution root if not an absolute path.
|
||||
return os.path.join(primary_solution_path, override)
|
||||
|
||||
path = os.path.join(primary_solution_path, 'third_party',
|
||||
'google-java-format', 'google-java-format')
|
||||
# Check that the .jar exists, since it is conditionally downloaded via
|
||||
# DEPS conditions.
|
||||
if os.path.exists(path) and os.path.exists(path + '.jar'):
|
||||
return path
|
||||
return None
|
||||
|
||||
|
||||
def main(args):
|
||||
google_java_format = FindGoogleJavaFormat()
|
||||
if google_java_format is None:
|
||||
# Fail silently. It could be we are on an old chromium revision,
|
||||
# or that it is a non-chromium project. https://crbug.com/1491627.
|
||||
print('google-java-format not found, skipping java formatting.')
|
||||
return 0
|
||||
|
||||
# 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 google-java-format at:\n' +
|
||||
' %s\n' % google_java_format)
|
||||
|
||||
return subprocess.call([google_java_format] + args)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
sys.exit(main(sys.argv[1:]))
|
||||
except KeyboardInterrupt:
|
||||
sys.stderr.write('interrupted\n')
|
||||
sys.exit(1)
|
Loading…
Reference in New Issue