config

OpenBSD system configuration
git clone git://jacobedwards.org/config
Log | Files | Refs | README

commit 907f94f419a98a8496ed227340bfc4d203c5c4a5
parent 006c6613830626e0373ae2cd25577ad6957cff49
Author: Jacob R. Edwards <n/a>
Date:   Thu, 21 Jul 2022 08:30:18 -0700

Do search in awk in pkg_list

Diffstat:
Mlocal/bin/bin/pkg_list | 22++++++++++++++--------
1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/local/bin/bin/pkg_list b/local/bin/bin/pkg_list @@ -5,20 +5,26 @@ # List OpenBSD ports for your arch (requires 'portslist' package) awk -F '|' -v OFS=' ' -v arch="$(uname -p)" ' -function matcharch(arch, field) { - if (!___ar__) - __ar__ = "^any$|(^!?| )" arch "( |$)" - matched = match(field, __ar__) - return match(field, "^!") ? !matched : matched +function matchunless(s, re, unless) { + _ = match(s, re) + return match(s, unless) ? !_: _ } BEGIN { - areg = "^any$|(^| )" arch "( |$)"; + re = "^any$|(^!?| )" arch "( |$)" + for (i = 1; i <= ARGC; ++i) { + argv[i] = ARGV[i] + delete ARGV[i] + } + ARGC = 1 } { - if (NF != 14 || matcharch(arch, $11)) + for (i in argv) + if (!match($1, argv[i]) && !match($4, argv[i])) + next + if (NF != 14 || matchunless($11, re, "^!")) print($1, $4); else print($1, $4 " (for " $11 "; not " arch ")"); -}' < /usr/local/share/ports-INDEX | egrep -- "${1:-.}" +}' "$@" < /usr/local/share/ports-INDEX