diff options
Diffstat (limited to 'toolchain_utils_githooks/check-lint')
-rwxr-xr-x | toolchain_utils_githooks/check-lint | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/toolchain_utils_githooks/check-lint b/toolchain_utils_githooks/check-lint deleted file mode 100755 index e4ba934b..00000000 --- a/toolchain_utils_githooks/check-lint +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/bash -ue -# Copyright 2019 The Chromium OS Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. -# -# This script runs `cros lint` on everything it's handed. - -if [[ $# -eq 0 ]]; then - echo "No files were given to lint." >&2 - echo "Usage: $0 file1 file2 ..." >&2 - exit 1 -fi - -cros=cros -golint=golint - -if ! type "${cros}" >&/dev/null; then - echo "${cros} isn't on your \$PATH. Please either enter a chroot, or place" \ - "depot_tools on your \$PATH." >&2 - exit 1 -fi - -lint_args=( "$@" ) - -# Trys to lint our sources. If `cros` tooling isn't properly found, returns. If -# anything else happens, this will exit the script with the exit code of -# `cros`. -try_lint() { - local output last_exit_code cros_binary - - cros_binary="$1" - - set +e - output="$("${cros_binary}" lint -- "${lint_args[@]}" 2>&1)" - last_exit_code="$?" - set -e - - # `cros` exits with 127 specifically if it failed due to not finding a Chrome - # OS checkout. - if [[ "${last_exit_code}" -ne 127 ]]; then - if [[ -n "${output}" ]]; then - echo "${output}" - fi - exit "${last_exit_code}" - fi -} - -try_lint "${cros}" - -# If the user's given us a root directory to fall back on, try that -if [[ -n "${CHROMEOS_ROOT_DIRECTORY:-}" ]]; then - user_cros="${CHROMEOS_ROOT_DIRECTORY}/chromite/bin/cros" - if [[ -x "${user_cros}" ]]; then - try_lint "${user_cros}" - fi -fi - -# So, `cros` outside of the chroot defers to other tools inside of Chromite. If -# `cros` couldn't find the real `cros` tool, we fall back to pylint on each -# Python file. It appears that `cros` uses depot_tools' pylint configuration, so -# this should get us most of the way there, and is probably the best we can -# reasonably expect to do for users who want to develop without the source -# tree. -echo "WARNING: No Chrome OS checkout detected, and no viable CrOS tree " >&2 -echo "found; falling back to linting only python and go. If you have a " >&2 -echo "Chrome OS checkout, please either develop from inside of the source ">&2 -echo "tree, or set \$CHROMEOS_ROOT_DIRECTORY to the root of it." >&2 - -python_files=() -go_files=() -for file in "$@"; do - if [[ "${file}" == *.py ]]; then - python_files+=( "${file}" ) - fi - if [[ "${file}" == *.go ]]; then - go_files+=( "${file}" ) - fi -done - -if [[ "${#python_files[@]}" -ne 0 ]]; then - # We saw `cros` above, so assume that `pylint` is in our PATH (depot_tools - # packages it, and provides a reasonable default config). - pylint "${python_files[@]}" -fi - -if ! type "${golint}" >/dev/null 2>&1; then - echo "Warning: go linting disabled. ${golint} isn't on your \$PATH. "\ - "Please either enter a chroot, or install go locally. Continuing." >&2 -elif [[ "${#go_files[@]}" -ne 0 ]]; then - "${golint}" -set_exit_status "${go_files[@]}" -fi |