From 3768a6c1488c148cc07481687a47cb7cce02ad35 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Sat, 25 Sep 2021 14:58:22 +0200 Subject: bin/mnts: lsblk now returns list of mountpoints --- bin/passmenu | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 bin/passmenu (limited to 'bin/passmenu') diff --git a/bin/passmenu b/bin/passmenu new file mode 100755 index 0000000..58001b5 --- /dev/null +++ b/bin/passmenu @@ -0,0 +1,57 @@ +#!/bin/bash + +set -e +[ -n "$DEBUG" ] && set -x + +# check requirements +for tool in bemenu fd fzf; do + if ! command -v "$tool" >/dev/null; then + printf "%s: %s not installed but required\n" "$(basename "$0")" "$tool" >&2 + exit 1 + fi +done + +typeit= +if [ "$1" = "--type" ]; then + typeit=1 + shift +fi + +if [ "$1" = "-t" ]; then + _dmenu() { + fzf + } +else + _dmenu() { + MENU_PROMPT="󰌆 pass" menu + } +fi + +prefix=${PASSWORD_STORE_DIR-~/.password-store} +prefix=$(readlink -f -- "${prefix}") +password_files=$( + fd -e gpg . "${prefix}" | sed -e "s#${prefix}/##" -e 's#\.gpg$##' +) + +password=$(printf '%s\n' "${password_files[@]}" | _dmenu "$@") +[ -n "$password" ] || exit 1 + +err=$(pass show "$password" 2>&1 | + awk 'NR==1 {system("wl-copy -o -n " $0)} /^Username:/ {system("wl-copy -n -p " $2)} {miss+=1} END{if(miss>0) print("no password found")}') + +# shellcheck disable=SC2181 +if [ "$?" -ne 0 ] || [ -n "$err" ]; then + notify-send \ + -a passmenu \ + -i /usr/share/icons/mdi/scalable/form-textbox-password.svg \ + -c error \ + 'passmenu: failed :(' \ + "${err}" + exit 1 +fi + +notify-send \ + -a passmenu \ + -i /usr/share/icons/mdi/scalable/form-textbox-password.svg \ + 'passmenu: password copied' \ + 'will be removed after next paste' -- cgit 1.4.1