diff --git a/openup b/openup
index 00b77ba..00c2906 100755
--- a/openup
+++ b/openup
@@ -151,7 +151,7 @@ update_pkg() {
# this only outputs the most recent vulnerability for each matching pkg
check_vuxml() {
- local _BP_MATCH _OUTDATED _PAT _PKG_MATCH _b _e _p
+ local _BP_MATCH _OUTDATED _PKG_MATCH _b _e _p
ftp -Vo ${_TMPVUXML} ${VUXML_URL} >/dev/null || bye_bye
perl -pi -e 's,\$ARCH,'"${_ARCH}"',g' ${_TMPVUXML}
@@ -162,24 +162,19 @@ check_vuxml() {
_BP_MATCH="$(for _b in ${_BP_MATCH[@]}; do echo ${_b} | grep -v "^${_e}$"; done)"
done
- _PAT=$(pkg_info -q | perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"' | \
- grep -v binpatch${_REL_INT}-${_ARCH} | \
- 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_MATCH=$(pkg_info -q | grep -v binpatch${_REL_INT}-${_ARCH})
for _e in ${EXCLUDE_PKG}; do
set -A _PKG_MATCH -- ${_PKG_MATCH}
- _PKG_MATCH="$(for _p in ${_PKG_MATCH[@]}; do echo ${_p} | grep -v "^${_e}$"; done)"
+ _PKG_MATCH="$(for _p in ${_PKG_MATCH[@]}; do echo ${_p} | grep -v "^${_e}-.*"; done)"
done
# set to "quirks" if empty to prevent running pkg_add against an empty pkg list
- _OUTDATED=$((pkg_add -qnv -Dnosig -Dunsigned ${_BP_MATCH:=quirks}; pkg_add -qnuv -Dnosig -Dunsigned ${_PKG_MATCH:=quirks}) 2>/dev/null | \
- grep '^Adding.*(pretending)' | \
- sort -u | \
- sed -e 's,Adding ,,;s,(pretending),,;s,->.*,,' | \
+ _OUTDATED=$((pkg_add -Iqn -Dnosig -Dunsigned ${_BP_MATCH:=quirks}; pkg_add -Iqnuz -Dnosig -Dunsigned ${_PKG_MATCH:=quirks}) 2>&1 | \
+ grep '^NOT CHECKING DIGITAL SIGNATURE FOR ' | \
+ sed -e 's,^NOT CHECKING DIGITAL SIGNATURE FOR ,,g' | \
grep -v '^quirks-' | \
- perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"')
+ perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"' | \
+ sort -u)
for p in ${_OUTDATED}
do