| #!/bin/bash |
| |
| set -e |
| |
| workdir=.cover |
| profile="$workdir/cover.out" |
| mode=count |
| |
| generate_cover_data() { |
| rm -rf "$workdir" |
| mkdir "$workdir" |
| |
| for pkg in "$@"; do |
| f="$workdir/$(echo $pkg | tr / -).cover" |
| go test -covermode="$mode" -coverprofile="$f" "$pkg" |
| done |
| |
| echo "mode: $mode" >"$profile" |
| grep -h -v "^mode:" "$workdir"/*.cover >>"$profile" |
| } |
| |
| show_cover_report() { |
| go tool cover -${1}="$profile" |
| } |
| |
| push_to_coveralls() { |
| goveralls -coverprofile="$profile" |
| } |
| |
| generate_cover_data $(go list ./...) |
| show_cover_report func |
| case "$1" in |
| "") |
| ;; |
| --coveralls) |
| push_to_coveralls ;; |
| *) |
| echo >&2 "error: invalid option: $1" ;; |
| esac |
| rm -rf "$workdir" |