From 7dc9cf031e8deaeddd2c614e1f6ad6f9ae2caa7d Mon Sep 17 00:00:00 2001 From: Antoine Jacoutot Date: Tue, 27 Aug 2013 15:29:48 +0200 Subject: [PATCH] Simplify and fix regex/parsing to cope with multi-packages. --- openup | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) 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 }