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): "