github.com/gophercloud/gophercloud@v1.11.0/script/format (about)

     1  #!/usr/bin/env bash
     2  
     3  goimports="goimports"
     4  
     5  find_files() {
     6    find . -not \( \
     7        \( \
     8          -wholename './output' \
     9          -o -wholename './_output' \
    10          -o -wholename './_gopath' \
    11          -o -wholename './release' \
    12          -o -wholename './target' \
    13          -o -wholename '*/third_party/*' \
    14          -o -wholename '*/vendor/*' \
    15        \) -prune \
    16      \) -name '*.go'
    17  }
    18  
    19  ignore_files=(
    20    "./openstack/compute/v2/extensions/quotasets/testing/fixtures.go"
    21    "./openstack/networking/v2/extensions/vpnaas/ikepolicies/testing/requests_test.go"
    22  )
    23  
    24  bad_files=$(find_files | xargs ${goimports} -l)
    25  
    26  final_files=()
    27  for bad_file in $bad_files; do
    28    found=
    29    for ignore_file in "${ignore_files[@]}"; do
    30      [[ "${bad_file}" == "${ignore_file}" ]] && { found=1; break; }
    31    done
    32    [[ -n $found ]] || final_files+=("$bad_file")
    33  done
    34  
    35  if [[ "${#final_files[@]}" -gt 0 ]]; then
    36    diff=$(echo "${final_files[@]}" | xargs ${goimports} -d -e 2>&1)
    37    if [[ -n "${diff}" ]]; then
    38      echo "${diff}"
    39      exit 1
    40    fi
    41  fi