pkgsrc-wip/pkg_summary-utils/files/pkg_grep_summary.awk
2008-05-09 10:14:12 +00:00

56 lines
865 B
Awk

BEGIN {
FS = "="
grep_summary__skip = -1 # -1 - unknown, 0 - false, 1 - true
count = 0
}
function update_skip (){
grep_summary__skip = grep_summary__condition()
if (grep_summary__skip == 0 || grep_summary__skip == 1){
grep_summary__skip = !grep_summary__skip
}
if (grep_summary__skip == 0){
for (i=0; i < count; ++i){
print accu [i]
}
delete accu
count = 0
}
}
grep_summary__skip == 1 && NF > 0 {
next
}
($1 == grep_summary__field) || ("" == grep_summary__field) {
if (grep_summary__skip == -1){
update_skip()
}
}
grep_summary__skip == 0 && NF > 0 {
print $0
next
}
{
grep_summary__fields [$1] = $2
}
grep_summary__skip == -1 && NF > 0 {
accu [count++] = $0
}
NF == 0 {
if (grep_summary__skip == 0){
print ""
}
delete accu
delete grep_summary__fields
count = 0
grep_summary__skip = -1
}