#!/usr/bin/env bash # # Generate coverage HTML for a package # e.g. PKG=./unit ./cover # set -e if [ -z "$PKG" ]; then echo "cover only works with a single package, sorry" exit 255 fi COVEROUT="coverage" if ! [ -d "$COVEROUT" ]; then mkdir "$COVEROUT" fi # strip leading dot/slash and trailing slash and sanitize other slashes # e.g. ./etcdserver/etcdhttp/ ==> etcdserver_etcdhttp COVERPKG=${PKG/#./} COVERPKG=${COVERPKG/#\//} COVERPKG=${COVERPKG/%\//} COVERPKG=${COVERPKG//\//_} # generate arg for "go test" export COVER="-coverprofile ${COVEROUT}/${COVERPKG}.out" source ./test go tool cover -html=${COVEROUT}/${COVERPKG}.out