Files
dance-lessons-coach/scripts/ci-update-coverage-badge.sh
2026-04-11 15:55:43 +02:00

40 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# KISS coverage badge updater using line numbers
# Usage: scripts/ci-update-coverage-badge.sh <coverage_percentage> [badge_type]
# badge_type: "unit" or "bdd", defaults to "unit"
set -e
COVERAGE=$1
BADGE_TYPE=${2:-"unit"}
# Get first line number of the badge
LINE_NUM=$(cat -n README.md | grep -i "${BADGE_TYPE} coverage" | head -1 | awk '{print $1}')
if [ -z "$LINE_NUM" ]; then
echo "Error: Could not find ${BADGE_TYPE} coverage badge in README.md"
exit 1
fi
# Get color
if (( $(echo "$COVERAGE >= 80" | bc -l) )); then
COLOR="brightgreen"
elif (( $(echo "$COVERAGE >= 50" | bc -l) )); then
COLOR="yellow"
else
COLOR="red"
fi
# Create badge markdown
BADGE_TYPE_UPPER=$(echo "$BADGE_TYPE" | tr '[:lower:]' '[:upper:]')
BADGE_MARKDOWN="[![${BADGE_TYPE_UPPER} Coverage](https://img.shields.io/badge/${BADGE_TYPE_UPPER}_Coverage-${COVERAGE}%-${COLOR}?style=flat-square)](https://gitea.arcodange.lab/arcodange/dance-lessons-coach)"
# Replace the line using sed
if [[ "$(uname)" == "Darwin" ]]; then
sed -i '' "${LINE_NUM}s|.*|${BADGE_MARKDOWN}|" README.md
else
sed -i "${LINE_NUM}s|.*|${BADGE_MARKDOWN}|" README.md
fi
echo "Updated ${BADGE_TYPE} coverage badge to ${COVERAGE}% (line ${LINE_NUM})"