From 76dd7e5a7cd0ea088f7d9d857b7ad6a84a03b611 Mon Sep 17 00:00:00 2001
From: merakor <cem@ckyln.com>
Date: Tue, 3 Nov 2020 14:28:00 +0000
Subject: cpt-search: add '--others' option

If cpt-search was called from a package directory, adding the '-o' option makes
it output only the other instances of the package.

FossilOrigin-Name: edf17ee77fb06aecbc6d409d49390aea2719af012ca8be2b7daf1dbda88da269
---
 src/cpt-search | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

(limited to 'src')

diff --git a/src/cpt-search b/src/cpt-search
index 9252da7..f943aca 100755
--- a/src/cpt-search
+++ b/src/cpt-search
@@ -7,6 +7,8 @@ parser_definition() {
     setup REST help:usage -- "usage: ${0##*/} [pkg...]"
     msg -- '' 'Options:'
     flag all    -s --single init:=1 on:'' -- "Only show the first instance of a package"
+    flag others -o --others               -- "Use the current directory as the package" \
+                                             "and show other instances"
     global_options
 }
 
@@ -17,4 +19,13 @@ eval set -- "$REST"
 
 # The 'all' variable is set by the option parser.
 # shellcheck disable=2154
-for pkg; do pkg_find "$pkg" "${all:+all}"; done
+case $others in
+    '') for pkg; do pkg_find "$pkg" "${all:+all}"; done ;;
+    *) pkg_find "${PWD##*/}" all |
+       while read -r pkg_dir; do case $pkg_dir in
+               "$PWD") ;;
+               *) printf '%s\n' "$pkg_dir"
+                  [ "$all" ] || exit 0
+           esac
+       done
+esac
-- 
cgit v1.2.3