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/mnts | 10 +++++----- bin/passmenu | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 5 deletions(-) create mode 100755 bin/passmenu (limited to 'bin') diff --git a/bin/mnts b/bin/mnts index 56eb185..cbf534c 100755 --- a/bin/mnts +++ b/bin/mnts @@ -48,8 +48,8 @@ handle() { done } -lsblk -fJ \ - | jq -r '.. | select(.uuid?!="" and .name?) | select((.name | test("hibiki|nvme") | not) and .fstype?) | [ .name, .label, .mountpoint // "" ] | @tsv' \ - | awk -F'\t' '{printf "/dev/%-10s\t%-15s\t%s\n", $1, $2, $3;}' \ - | menu --list=8 \ - | handle +lsblk -fJ | + jq -r '.. | select(.uuid?!="" and .name?) | select((.name | test("hibiki|nvme") | not) and .fstype?) | [ .name, .label, .mountpoints[0] // "" ] | @tsv' | + awk -F'\t' '{printf "/dev/%-10s\t%-15s\t%s\n", $1, $2, $3;}' | + menu --list=8 | + handle 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