File: make-coverage-badge

package info (click to toggle)
libidn2 2.3.8-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,768 kB
  • sloc: ansic: 6,049; sh: 1,480; makefile: 499; xml: 50; perl: 15
file content (47 lines) | stat: -rwxr-xr-x 1,585 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env bash

text=${1:-coverage}
textwidth=$(($(echo -n "$text"|wc -m) * 7 + 6))
numwidth=54
totalwidth=$(($textwidth + $numwidth))

coverage=$(grep -m 1 'headerCovTableEntry[a-zA-Z].*[0-9]*' Libidn2-*-coverage/index.html|sed 's/^.*>\([0-9]\+\.[0-9]\+\).*/\1/');
coverage=$(printf %.2f $coverage)
inum=$(echo $coverage|cut -d'.' -f1)
if [ -z "$inum" ]; then inum="0"; fi
coverage="$coverage%"

# https://www.w3.org/TR/SVG11/types.html#ColorKeywords
if [ $inum -ge 90 ]; then
#  color="lawngreen"
  color="#4c1"
elif [ $inum -ge 80 ]; then
  color="yellow"
elif [ $inum -ge 70 ]; then
  color="orange"
else
  color="red"
fi

cat <<EOF >badge.svg
<svg xmlns="http://www.w3.org/2000/svg" width="${totalwidth}" height="20">
<linearGradient id="b" x2="0" y2="100%">
<stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
<stop offset="1" stop-opacity=".1"/>
</linearGradient>
<mask id="a">
<rect width="${totalwidth}" height="20" rx="3" fill="#fff"/>
</mask>
<g mask="url(#a)">
<path fill="#555" d="M0 0h${textwidth}v20H0z"/>
<path fill="${color}" d="M${textwidth} 0h${numwidth}v20H${textwidth}z"/>
<path fill="url(#b)" d="M0 0h${totalwidth}v20H0z"/>
</g>
<g fill="#fff" text-anchor="middle" font-family="Verdana,DejaVu Sans,Geneva,sans-serif" font-size="11">
<text x="$(($textwidth / 2))" y="15" fill="#010101" fill-opacity=".3">${text}</text>
<text x="$(($textwidth / 2))" y="14">${text}</text>
<text x="$(($textwidth + $numwidth / 2))" y="15" fill="#010101" fill-opacity=".3">${coverage}</text>
<text x="$(($textwidth + $numwidth / 2))" y="14">${coverage}</text>
</g>
</svg>
EOF