#!/bin/bash
set -x
set -e
BASEDIR="$(realpath "$1")"
PROJECT_NAME="$2"

TITLE="Coverage report of $PROJECT_NAME"

# build by gitlab CI
if [ -n "$CI_BUILD_REF_NAME" ]; then
    BRANCH="$CI_BUILD_REF_NAME"
    TITLE="$TITLE, $BRANCH branch"
# build by travis
elif [ -n "$TRAVIS_BRANCH" ]; then
    # if this a pull request ?
    if [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then
        BRANCH="pull-request-$TRAVIS_PULL_REQUEST"
        TITLE="$TITLE, pull request n°$BRANCH"
    else
        BRANCH="$TRAVIS_BRANCH"
        TITLE="$TITLE, $BRANCH branch"
    fi
else
    BRANCH="$(git rev-parse --abbrev-ref HEAD)"
    TITLE="$TITLE, $BRANCH branch"
fi

if [[ "$BRANCH" = "HEAD" ]] || [ -z "$BRANCH" ]; then
    echo "bad branch name '$BRANCH', ignoring it"
    exit 0
fi


VENV="$(mktemp -d)"
HTMLREPORT="$(mktemp -d)"
virtualenv -p python3 "$VENV"
"$VENV/bin/pip" install coverage
"$VENV/bin/coverage" html --title "$TITLE" --directory "$HTMLREPORT"
rm -rf "$VENV"


cd "$HTMLREPORT"; tar czf "$BASEDIR/coverage.tar.gz" ./

cd "$BASEDIR"

rm -rf "$HTMLREPORT"

set +x
echo "curl https://badges.genua.fr/coverage/ ..."
curl https://badges.genua.fr/coverage/ \
    -F "secret=$COVERAGE_TOKEN" \
    -F "tar=@$BASEDIR/coverage.tar.gz" \
    -F "project=$PROJECT_NAME" \
    -F "branch=$BRANCH"

set -x
rm "$BASEDIR/coverage.tar.gz"