q.sh/q-pass

40 lines
1.1 KiB
Text
Raw Permalink Normal View History

#!/bin/sh
2021-11-21 21:52:45 +00:00
2023-05-14 19:24:27 +00:00
ENV_pass=pass
ENV_find=find
ENV_sed=sed
ENV_wl_copy=wl-copy
2021-11-21 21:52:45 +00:00
if [[ -z "$@" ]]; then
# Return a regular expression that should trigger
# this subcommand. q.sh will then pass control to
# this script whenever the input line matches.
echo "^p .*$"
2021-11-21 21:52:45 +00:00
elif [[ "$1" == "--hint" ]]; then
# This subcommand has no hints
shift
2021-11-21 21:52:45 +00:00
elif [[ "$1" == "--complete" ]]; then
shift
# Return a list of all accounts for which we store
# passwords. This will be used to provide a list of
# completions.
cd ~/.password-store
2023-05-14 19:24:27 +00:00
$ENV_find . -name "*.gpg" | $ENV_sed -E 's/\.\/(.*)\.gpg/\1 p \1/'
2021-11-21 21:52:45 +00:00
elif [[ "$1" == "--preview" ]]; then
shift
# This information will be displayed in the preview
# pane on the right.
echo "Will get password for $1"
2021-11-21 21:52:45 +00:00
elif [[ "$1" == "--run" ]]; then
shift
# This will be triggered when enter is pressed on
# one of the options. We now decrypt the password
# and place it to the clipboard.
NAME="$1"
2023-05-14 19:24:27 +00:00
$ENV_pass "$NAME" | (nohup $ENV_wl_copy -n 2>/dev/null &)
2021-11-21 21:52:45 +00:00
# A short sleep is needed to wait for child process
# to spawn before exiting.
sleep 0.01
2021-11-21 21:52:45 +00:00
fi