forked from mirrors/openup
Optimize check_vuxml() even more:
Before:
0m25.06s real 0m1.26s user 0m1.39s system
After:
0m19.17s real 0m0.80s user 0m0.96s system
This commit is contained in:
parent
f076032aec
commit
94e5b776f2
1 changed files with 11 additions and 14 deletions
25
openup
25
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,<name>,,g;s,</name>,,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 '<name>('"${_PAT}"')</name>' ${_TMPVUXML} | \
|
||||
sort -u | sed -e 's,<name>,,g;s,</name>,,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): "
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue