github.com/davecgh/go-xdr@v0.0.0-20161123171359-e6a2ba005892/goclean.sh (about)

     1  #!/bin/bash
     2  # The script does automatic checking on a Go package and its sub-packages, including:
     3  # 1. gofmt         (http://golang.org/cmd/gofmt/)
     4  # 2. goimports     (https://github.com/bradfitz/goimports)
     5  # 3. golint        (https://github.com/golang/lint)
     6  # 4. go vet        (http://golang.org/cmd/vet)
     7  # 5. test coverage (http://blog.golang.org/cover)
     8  
     9  set -e
    10  
    11  # Automatic checks
    12  cd xdr2
    13  test -z "$(gofmt -l -w .     | tee /dev/stderr)"
    14  test -z "$(goimports -l -w . | tee /dev/stderr)"
    15  test -z "$(golint .          | tee /dev/stderr)"
    16  go vet ./...
    17  env GORACE="halt_on_error=1" go test -v -race ./...
    18  
    19  # Run test coverage on each subdirectories and merge the coverage profile.
    20  
    21  echo "mode: count" > profile.cov
    22  
    23  # Standard go tooling behavior is to ignore dirs with leading underscores.
    24  for dir in $(find . -maxdepth 10 -not -path './.git*' -not -path '*/_*' -type d);
    25  do
    26  if ls $dir/*.go &> /dev/null; then
    27    go test -covermode=count -coverprofile=$dir/profile.tmp $dir
    28    if [ -f $dir/profile.tmp ]; then
    29      cat $dir/profile.tmp | tail -n +2 >> profile.cov
    30      rm $dir/profile.tmp
    31    fi
    32  fi
    33  done
    34  
    35  go tool cover -func profile.cov
    36  
    37  # To submit the test coverage result to coveralls.io,
    38  # use goveralls (https://github.com/mattn/goveralls)
    39  # goveralls -coverprofile=profile.cov -service=travis-ci