forked from gammu/gammu
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcoveralls-upload.in
executable file
·60 lines (49 loc) · 2.09 KB
/
coveralls-upload.in
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
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/bash
gcov --source-prefix @CMAKE_SOURCE_DIR@ --preserve-paths --relative-only $(find -iname *.gcda) 1>/dev/null || exit 0
if [ ! -z "${TRAVIS_JOB_ID}" ]
then
cat >coverage.json <<EOF
{
"service_name": "travis-ci",
"service_job_id": "${TRAVIS_JOB_ID}",
"run_at": "$(date --iso-8601=s)",
"source_files": [
EOF
else
cat >coverage.json <<EOF
{
"repo_token": "$1",
"run_at": "$(date --iso-8601=s)",
"git": {
"head": {
"id": "$(git log -1 --pretty=format:%H)",
"author_name": "$(git log -1 --pretty=format:%an | sed -re 's%\\%\\\\%g; s%"%\\"%g; s%$%\\n%' | tr -d $'\n' | sed -re 's%\\n$%%')",
"author_email": "$(git log -1 --pretty=format:%ae | sed -re 's%\\%\\\\%g; s%"%\\"%g; s%$%\\n%' | tr -d $'\n' | sed -re 's%\\n$%%')",
"committer_name": "$(git log -1 --pretty=format:%cn | sed -re 's%\\%\\\\%g; s%"%\\"%g; s%$%\\n%' | tr -d $'\n' | sed -re 's%\\n$%%')",
"committer_email": "$(git log -1 --pretty=format:%ce | sed -re 's%\\%\\\\%g; s%"%\\"%g; s%$%\\n%' | tr -d $'\n' | sed -re 's%\\n$%%')",
"message": "$(git log -1 --pretty=format:%B | sed -re 's%\\%\\\\%g; s%"%\\"%g; s%$%\\n%' | tr -d $'\n' | sed -re 's%\\n$%%')"
},
"branch": "$(git rev-parse --abbrev-ref HEAD)",
"remotes": [
$(git remote -v | grep 'fetch' | awk '{ print "{\"name\":\""$1"\",\"url\":\""$2"\"}" }' | tr $'\n' ',' | sed -re 's%,$%%')
]
},
"source_files": [
EOF
fi
for file in $(find * -iname '*.gcov' -print)
do
srcname=$(echo ${file} | sed -re 's%#%\/%g; s%.gcov$%%')
cat >>coverage.json <<EOF
{
"name": "${srcname}",
"source": "$(tail -n +3 ${file} | cut -d ':' -f 3- | sed -re 's%\\%\\\\%g; s%"%\\"%g; s%\t%\\t%g; s%$%\\n%' | tr -d $'\n' | sed -re 's%\\n$%%')",
"coverage": [$(tail -n +3 ${file} | cut -d ':' -f 1 | sed -re 's%^ +%%g; s%-([0-9]+)%\1%; s%-%null%g; s%^[#=]+$%0%;' | tr $'\n' ',' | sed -re 's%,$%%')]
},
EOF
done
mv coverage.json coverage.json.tmp
cat >coverage.json <(head -n -1 coverage.json.tmp) <(echo -e " }\n ]\n}")
rm coverage.json.tmp
curl -F [email protected] https://coveralls.io/api/v1/jobs
rm *.gcov