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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
#
# aegis - project change supervisor
# Copyright (C) 1999, 2006-2008 Peter Miller
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
# <http://www.gnu.org/licenses/>.
#
function spiffy(s) {
tmp = s
gsub(/_/, " ", tmp)
an = split(tmp, a, " ")
result = ""
for (j = 1; j <= an; ++j)
{
tmp = a[j]
tmp = toupper(substr(tmp, 1, 1)) tolower(substr(tmp, 2, 99))
if (length(result) && length(tmp))
result = result " "
result = result tmp
}
return result
}
/metrics =/ {
++nfiles
next
}
/name.*value/ {
name = $4
value = 0 + $7
sub(/^"/, "", name)
sub(/".*/, "", name)
summary[name] += value
if (min[name] == 0 || min[name] > value)
min[name] = value
if (max[name] < value)
max[name] = value
}
END {
if (nfiles == 0)
per_file = 1
else
per_file = 1.0 / nfiles
print ".TS"
print "tab(;);"
print "c c c c c c"
print "c c c c c c"
print "l n n n n n."
print "Description;Total;Minimum;Average;Maximum"
print ";;Per File;Per File;Per File"
print "_"
for (name in summary)
{
printf("%s;%d;%d;%4.2f;%d\n",
spiffy(name),
summary[name],
min[name],
summary[name] * per_file,
max[name]);
}
print ".TE"
print ".sp 0.5"
printf "Statistics collected over %d source files.\n", nfiles
n = ENVIRON["ALL_FILES"] + 0
if (n > nfiles)
{
printf \
( \
"The remaining %d source files (%d%%)\n", \
(n - nfiles), 100 * (n - nfiles)/n \
);
print "are not covered here."
}
}
|