From f63604f7460461c7aabecb7a84e663af4647448f Mon Sep 17 00:00:00 2001 From: Antoine Jacoutot Date: Wed, 4 Sep 2013 16:04:21 +0200 Subject: [PATCH] Optimize the way we check vuxml: we only want to run pkg_add -u against a list of possible candidates, not all of our packages. This can drasticaly reduce the run in cron mode when lots of packages are installed. --- openup | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/openup b/openup index 9761675..b476db8 100755 --- a/openup +++ b/openup @@ -165,7 +165,7 @@ update_pkg() { # this only outputs the most recent vulnerability for each pkg check_vuxml() { - local _BP _BP_OUTDATED _PKG_OUTDATED + local _BP _BP_OUTDATED _PAT _PKG_MATCH _PKG_OUTDATED ftp -Vo ${_TMPVUXML} ${VUXML_URL} >/dev/null perl -pi -e 's,\$ARCH,'"$(arch -s)"',g' ${_TMPVUXML} @@ -177,7 +177,12 @@ check_vuxml() { sed -e 's,Adding ,,;s,(pretending),,;s,->.*,,' | \ perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"') - _PKG_OUTDATED=$(pkg_add -qnuv -D nosig 2>/dev/null | \ + _PAT=$(pkg_info -q | perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"' | \ + 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,->.*,,' | \