#!/usr/bin/env bash

set -e

DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )

usage()
{
cat << EOF
Usage: $(basename $0) --mode CoverMode

This script will run 'go test' on all non-vendor subdirs, then 'go tool cover'
for test coverage. Any 'go test' failures will exit the script. If all tests
are successful, it outputs a 'coverage.html' file with test coverage result.

OPTIONS:
 -h                 Show this message
 -m or --mode       Test coverage mode: set, count, or atomic (default)
EOF
}

# Set default variables
coverMode="atomic"
while :
do
    case $1 in
        -h | --help | -\?)
        usage
        exit 0      # This not an error, User asked help. Don't do "exit 1"
        ;;
        -m | --mode)
            coverMode=$2
            shift 2
            ;;
        *)
            break
            ;;
    esac
done

echo "mode: $coverMode" | tee coverage.txt

cd $DIR
for d in $(go list ./... | grep -v vendor); do
    go test -coverprofile=profile.out -covermode=$coverMode $d
    if [ -f profile.out ]; then
        tail -n+2 profile.out >> coverage.txt
        rm profile.out
    fi
done
go tool cover -html=coverage.txt -o cover.html
