diff --git a/openup b/openup index ff06b14..84cbabb 100755 --- a/openup +++ b/openup @@ -185,19 +185,14 @@ check_vuxml() { for p in ${_OUTDATED} do - awk "/${p}/,/<\/vuln>/" /tmp/53.xml | \ - sed -n -e 's/.*\(.*\)<\/name>.*/\1/p' \ - -e 's/.*\(.*\)<\/lt><\/range>.*/\1/p' \ - -e 's/.*

\(.*\)<\/p>.*/\1/p' | \ - while read l - do - if [ "${l}" != "${p}" ]; then - echo -n "${l} " - else - echo "\n" - pr_bigarrow "${l} <" - fi - done + pr_bigarrow "${p} <" + # XXX how do we print only the 1st matching range in awk? + awk "/${p}<\/name>/,/<\/vuln>/" /tmp/53.xml | \ + sed '/<\/vuln>/,$d' | \ + sed -n -e 's/.*\(.*\)<\/lt><\/range>.*/\1/p' \ + -e 's/.*

\(.*\)<\/p>.*/\1/p' | uniq |\ + while read l; do echo -n "${l} "; done + echo "\n" done | fmt | sed '/^$/d' | uniq -u }