From 695324c57c66d55cb5caeb4eb4a3c2895fce18b1 Mon Sep 17 00:00:00 2001 From: "dylan.araps@gmail.com" Date: Tue, 1 Oct 2019 19:40:23 +0000 Subject: search: show all matches FossilOrigin-Name: af4246c0e0b1937539bb1384baeb742a6e35999adbc9e51cf559fd127e2063c4 --- kiss | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'kiss') diff --git a/kiss b/kiss index b3967bd..a05a46a 100755 --- a/kiss +++ b/kiss @@ -72,18 +72,28 @@ pkg_find() { # in $KISS_PATH/*. [ "$KISS_PATH" ] || die "\$KISS_PATH needs to be set" + # Turn the argument list into variables as we reset + # the list below. + query=$1 + match=$2 + # Find the repository containing a package. # Searches installed packages if the package is absent # from the repositories. # See [1] at top of script. # shellcheck disable=2046,2086 - set -- "$1" $(IFS=:; find $KISS_PATH "$sys_db" -maxdepth 1 -name "$1") + set -- $(IFS=:; find $KISS_PATH "$sys_db" -maxdepth 1 -name "$1") # A package may also not be found due to a repository not being # readable by the current user. Either way, we need to die here. - [ "$2" ] || die "Package '$1' not in any repository" + [ "$1" ] || die "Package '$query' not in any repository" - printf '%s\n' "$2" + # Show all search results if called from 'kiss search', else + # print only the first match. + case $match in + all) printf '%s\n' "$@" ;; + *) printf '%s\n' "$1" ;; + esac } pkg_list() { @@ -949,7 +959,7 @@ args() { ;; s|search) - for pkg; do pkg_find "$pkg"; done + for pkg; do pkg_find "$pkg" all; done ;; v|version|-v|--version) -- cgit v1.2.3