vitess.io/vitess@v0.16.2/misc/git/hooks/golangci-lint (about)

     1  #!/bin/bash
     2  # Copyright 2019 The Vitess Authors.
     3  #
     4  # Licensed under the Apache License, Version 2.0 (the "License");
     5  # you may not use this file except in compliance with the License.
     6  # You may obtain a copy of the License at
     7  #
     8  #     http://www.apache.org/licenses/LICENSE-2.0
     9  #
    10  # Unless required by applicable law or agreed to in writing, software
    11  # distributed under the License is distributed on an "AS IS" BASIS,
    12  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  # See the License for the specific language governing permissions and
    14  # limitations under the License.
    15  
    16  GOLANGCI_LINT=$(command -v golangci-lint >/dev/null 2>&1)
    17  if [ $? -eq 1 ]; then
    18    echo "Downloading golangci-lint..."
    19    go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.51.2
    20  fi
    21  
    22  gofiles=$(git diff --cached --name-only --diff-filter=ACM | grep '^go/.*\.go$')
    23  if [ -z "$gofiles" ]; then
    24    exit 0
    25  fi
    26  
    27  gopackages=$(echo "$gofiles" | xargs -n1 dirname | sort -u | paste -sd ' ' -)
    28  
    29  echo "Linting $gopackages"
    30  golangci-lint run -E revive $gopackages