aboutsummaryrefslogtreecommitdiff
path: root/hack/verify-gofmt.sh
blob: c11ab3adbbb66c27aefdbb6c28876306cd4e46bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash

set -o errexit
set -o nounset
set -o pipefail

find_files() {
  find . -not \( \
      \( \
        -wholename '*/vendor/*' \
      \) -prune \
    \) -name '*.go' \
    -not \( -wholename './_output/*' \)
}
FIX=0
GOFMT="gofmt -s"
bad_files=$(find_files | xargs $GOFMT -l)

while getopts "f?:" opt; do
    case "$opt" in
        f) FIX=1
            ;;
    esac
done

if [[ -n "${bad_files}" ]]; then
    if (($FIX == 1)) ; then
        echo "Correcting the following files:"
        echo "${bad_files}"
        while read -r go_file; do
            gofmt -s -w $go_file
        done <<< "${bad_files}"
    else
      echo "!!! '$GOFMT' needs to be run on the following files: "
      echo "${bad_files}"
      exit 1
  fi
fi