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