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