diff --git a/openup b/openup
index b27680a..4c8d7e4 100755
--- a/openup
+++ b/openup
@@ -165,30 +165,27 @@ update_pkg() {
# this only outputs the most recent vulnerability for each pkg
check_vuxml() {
- local _BP _BP_OUTDATED _PAT _PKG_MATCH _PKG_OUTDATED
+ local _BP_MATCH _OUTDATED _PAT _PKG_MATCH
ftp -Vo ${_TMPVUXML} ${VUXML_URL} >/dev/null
perl -pi -e 's,\$ARCH,'"$(arch -s)"',g' ${_TMPVUXML}
- _BP=$(pkg_info -Q binpatch${_REL_INT}-$(arch -s) | sed 's/.[^-]*$//' | sort -u | tr '\n' ' ')
- _BP_OUTDATED=$(pkg_add -qnv -D nosig ${_BP} 2>/dev/null | \
- grep '^Adding.*(pretending)' | \
- sort -u | \
- sed -e 's,Adding ,,;s,(pretending),,;s,->.*,,' | \
- perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"')
+ _BP_MATCH="$(grep binpatch ${_TMPVUXML} | sed -e 's,,,g;s,,,g;s,\$ARCH,'"$(arch -s)"',g' | sort -u)"
_PAT=$(pkg_info -q | perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"' | \
- while read l ; do echo -n "|$l" ; done | \
+ grep -v binpatch${_REL_INT}-$(arch -s) | \
+ while read l; do echo -n "|$l"; done | \
sed 's/^|//' | sed -e 's,++,\\\++,g')
_PKG_MATCH=$(grep -Eo '('"${_PAT}"')' ${_TMPVUXML} | \
sort -u | sed -e 's,,,g;s,,,g')
- _PKG_OUTDATED=$(pkg_add -qnuv -D nosig ${_PKG_MATCH} 2>/dev/null | \
- grep '(installing)(pretending)' | \
- grep -v binpatch${_REL_INT}-$(arch -s) | \
- sed -e 's,Adding ,,;s,(pretending),,;s,->.*,,' | \
- perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"')
- for p in ${_BP_OUTDATED} ${_PKG_OUTDATED}
+ _OUTDATED=$((pkg_add -qnv -D nosig ${_BP_MATCH}; pkg_add -qnuv -D nosig ${_PKG_MATCH}) 2>/dev/null | \
+ grep '^Adding.*(pretending)' | \
+ sort -u | \
+ sed -e 's,Adding ,,;s,(pretending),,;s,->.*,,' | \
+ perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"')
+
+ for p in ${_OUTDATED}
do
echo "--- ${p} ---\n"
echo "Available update(s): "