aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2025-10-25 13:24:05 -0300
committerSilvio Rhatto <rhatto@riseup.net>2025-10-25 13:24:05 -0300
commit357ad16e4f97fd53f2ea676247784c390ae1fddb (patch)
tree9c0876ee3cb5a7904ef826048ff7456be498ef6d /lib
parent25440444a5c793687ca510c68fe8528abed32cf1 (diff)
downloadkeyringer-357ad16e4f97fd53f2ea676247784c390ae1fddb.tar.gz
keyringer-357ad16e4f97fd53f2ea676247784c390ae1fddb.tar.bz2
Feat: new search and ssearch actions
Diffstat (limited to 'lib')
-rwxr-xr-xlib/keyringer/actions/sclip9
l---------lib/keyringer/actions/search1
l---------lib/keyringer/actions/ssearch1
-rwxr-xr-xlib/keyringer/actions/xclip9
-rw-r--r--lib/keyringer/completions/bash/keyringer4
-rw-r--r--lib/keyringer/completions/zsh/_keyringer4
6 files changed, 22 insertions, 6 deletions
diff --git a/lib/keyringer/actions/sclip b/lib/keyringer/actions/sclip
index de9c3b5..e513e8d 100755
--- a/lib/keyringer/actions/sclip
+++ b/lib/keyringer/actions/sclip
@@ -7,9 +7,16 @@
LIB="`dirname $0`/../functions"
source "$LIB" read $* || exit 1
+# Determine action
+if [ "$(basename "$0")" == "ssearch" ]; then
+ action="search"
+else
+ action="xclip"
+fi
+
# Clip password
shift
-keyringer $KEYRING xclip $*
+keyringer $KEYRING $action $*
# Se window switch combo
if [ -z "$XDOTOOL_NEXT_WINDOW" ]; then
diff --git a/lib/keyringer/actions/search b/lib/keyringer/actions/search
new file mode 120000
index 0000000..8b8c16c
--- /dev/null
+++ b/lib/keyringer/actions/search
@@ -0,0 +1 @@
+xclip \ No newline at end of file
diff --git a/lib/keyringer/actions/ssearch b/lib/keyringer/actions/ssearch
new file mode 120000
index 0000000..10534ec
--- /dev/null
+++ b/lib/keyringer/actions/ssearch
@@ -0,0 +1 @@
+sclip \ No newline at end of file
diff --git a/lib/keyringer/actions/xclip b/lib/keyringer/actions/xclip
index ff82cc1..a189545 100755
--- a/lib/keyringer/actions/xclip
+++ b/lib/keyringer/actions/xclip
@@ -57,8 +57,15 @@ if ! which xclip &> /dev/null; then
exit 1
fi
+# Find our search mode
+if [ "$(basename "$0")" == "search" ] && [ -z "$2" ]; then
+ read -p "Enter option (Ctrl-C to abort): " query
+else
+ query="$2"
+fi
+
# Get file
-keyringer_get_file "$2"
+keyringer_get_file "$query"
# Decrypt
pass="$($GPG --use-agent -d "$KEYDIR/$FILE" | head -n 1)"
diff --git a/lib/keyringer/completions/bash/keyringer b/lib/keyringer/completions/bash/keyringer
index 4aa4b75..3e70e4c 100644
--- a/lib/keyringer/completions/bash/keyringer
+++ b/lib/keyringer/completions/bash/keyringer
@@ -3,7 +3,7 @@
#
if [[ -n ${ZSH_VERSION-} ]]; then
- autoload -U +X bashcompinit && bashcompinit
+ autoload -U +X bashcompinit && bashcompinit
fi
# Completion for git subcommand
@@ -92,7 +92,7 @@ _keyringer() {
recipients)
opts="ls edit"
;;
- ls|tree|mkdir|encrypt|encrypt-batch|pwgen|decrypt|edit|append|append-batch|del|rm|recrypt|open|clip|xclip|sclip|find|mv|cp)
+ ls|tree|mkdir|encrypt|encrypt-batch|pwgen|decrypt|edit|append|append-batch|del|rm|recrypt|open|clip|xclip|sclip|search|ssearch|find|mv|cp)
cur="`echo ${cur} | sed -e "s|^/*||"`" # avoid leading slash
opts="$(bash -c "set -f && export KEYRINGER_CHECK_RECIPIENTS=false && export KEYRINGER_CHECK_VERSION=false && keyringer $instance ls -p -d ${cur}*" 2> /dev/null)"
;;
diff --git a/lib/keyringer/completions/zsh/_keyringer b/lib/keyringer/completions/zsh/_keyringer
index 7562352..0ac6c7f 100644
--- a/lib/keyringer/completions/zsh/_keyringer
+++ b/lib/keyringer/completions/zsh/_keyringer
@@ -49,7 +49,7 @@ _keyringer() {
recipients)
compadd "$@" ls edit
;;
- ls|tree|mkdir|encrypt|encrypt-batch|pwgen|decrypt|edit|append|append-batch|del|rm|recrypt|open|clip|xclip|sclip|find|mv|cp)
+ ls|tree|mkdir|encrypt|encrypt-batch|pwgen|decrypt|edit|append|append-batch|del|rm|recrypt|open|clip|xclip|sclip|search|ssearch|find|mv|cp)
words[4]="`echo $words[4] | sed -e "s|^/*||"`" # avoid leading slash
compadd "$@" $(KEYRINGER_CHECK_RECIPIENTS=false KEYRINGER_CHECK_VERSION=false keyringer $words[2] ls -p -d $words[4]'*' 2> /dev/null)
;;
@@ -96,7 +96,7 @@ _keyringer() {
true
fi
;;
- esac
+ esac
}
_keyringer "$@"