summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsh/pme29
1 files changed, 23 insertions, 6 deletions
diff --git a/sh/pme b/sh/pme
index ff6c711..16d1c09 100755
--- a/sh/pme
+++ b/sh/pme
@@ -1,15 +1,32 @@
#!/bin/sh
# my Pass MEnu
+otp=
+user=
+while getopts ou opt; do
+ case $opt in
+ o) otp=1;;
+ u) user=1;;
+ \?) exit 1;;
+ esac
+done
+
find "$HOME/.password-store/" \( -type f -o -type l \) -name '*.gpg' \
| sed "s#$HOME/\.password-store/\(.*\)\.gpg\$#\1#" \
| dmenu -i -p 'pass' \
| {
- case "$1" in
- # `{ IFS= read -r p; printf '%s\r' "$p";}` is modified from https://git.zx2c4.com/password-store/tree/contrib/dmenu/passmenu#n34 GPL-2.0-or-later code
- '') xargs pass | { IFS= read -r p; printf '%s\r' "$p";};;
- '-o') xargs pass otp | tr '\n' '\r';;
- *) exit 1;;
- esac
+ if [ "$otp" ]; then
+ xargs pass otp | tr '\n' '\r'
+ else
+ xargs pass | {
+ if [ "$user" ]; then
+ # https://www.gnu.org/software/gawk/manual/html_node/Case_002dsensitivity.html
+ awk 'tolower($1) ~ /^(user|username):$/ {printf $2}'
+ else
+ # modified from https://git.zx2c4.com/password-store/tree/contrib/dmenu/passmenu#n34 GPL-2.0-or-later code
+ IFS= read -r p; printf '%s\r' "$p"
+ fi
+ }
+ fi
} \
| xdotool type --clearmodifiers --file -