diff --git a/.local/bin/passwords b/.local/bin/passwords index de6effab..b1161336 100644 --- a/.local/bin/passwords +++ b/.local/bin/passwords @@ -2,74 +2,65 @@ shopt -s nullglob globstar -clipb_clear=10 totp_tmp="${XDG_CACHE_HOME:-$HOME/.cache}/totp-tmp.png" passwordList() { \ prefix=${PASSWORD_STORE_DIR-~/.password-store} - password_files=( "$prefix"/**/*.gpg ) - password_files=( "${password_files[@]#"$prefix"/}" ) - password_files=( "${password_files[@]%.gpg}" ) + + password_files=("$prefix"/**/*.gpg) + password_files=("${password_files[@]#"$prefix"/}") + password_files=("${password_files[@]%.gpg}") + password_files=$(printf '%s\n' "${password_files[@]}") } getPasswords() { \ - choice="$(printf '%s\n' "${password_files[@]}" | dmenu -i -p "Passwords")" + choice="$(echo "$password_files" | dmenu -i -p "Passwords")" - if [ ! -z "$choice" ] - then - pass "$choice" | xclip -selection clipboard - notify-send "📋 Password for $choice copied!" + [ -z "$choice" ] && exit - sleep $clipb_clear - - printf "" | xclip -selection clipboard - fi + pass -c "$choice" + notify-send "📋 Password for $choice copied!" } getTOTP() { - choice="$(printf '%s\n' "${password_files[@]}" | grep "totp" | dmenu -i -p "OTP")" + choice="$(echo "$password_files" | grep "totp" | dmenu -i -p "OTP")" - if [ ! -z "$choice" ] - then - pass otp "$choice" | xclip -selection clipboard - notify-send "📋 OTP for $choice copied!" + [ -z "$choice" ] && exit - sleep $clipb_clear - - printf "" | xclip -selection clipboard - fi + pass otp -c "$choice" + notify-send "📋 OTP for $choice copied!" } addTOTP() { \ ifinstalled zbarimg || exit name=$(printf "" | dmenu -i -p "What is the account name?") - if [ ! -z "$name" ] - then - notify-send "📷 Please screenshot the QR code" - maim -m 10 -d 0.1 -s "$totp_tmp" - zbarimg -q --raw "$totp_tmp" | pass otp insert totp-$name && - notify-send "🔒 OTP for totp-$name added!" || - notify-send "❌ Failed to add QR code!" - rm "$totp_tmp" - fi + + [ -z "$name" ] && exit + + notify-send "📷 Please screenshot the QR code" + maim -m 10 -d 0.1 -s "$totp_tmp" + zbarimg -q --raw "$totp_tmp" | pass otp insert totp-$name && + notify-send "🔒 OTP for totp-$name added!" || + notify-send "❌ Failed to add QR code!" + rm "$totp_tmp" } addPassword() { \ name=$(printf "" | dmenu -i -p "What is the account name?") - if [ ! -z "$name" ] - then - case "$(printf "Random password\\nManual password" | dmenu -i -p "Passwords")" in - "Random password") addPass=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c $(printf "12\\n32\\n128" | dmenu -i -p "How many characters?") ; echo '') ;; - "Manual password") addPass=$(dmenu -i -P -p "Enter a password") ;; - * ) exit - esac - [ -z $addPass ] && exit + [ -z "$name" ] && exit - echo $addPass | pass insert "$name" -e - notify-send "🔒 Password for $name added!" - fi + case "$(printf "Random password\\nManual password" | dmenu -i -p "Passwords")" in + "Random password") addPass=$(tr -dc '\40-\176' < /dev/urandom | tr -d ' ' | head -c $(printf "12\\n32\\n128" | dmenu -i -p "How many characters?") ; echo '') ;; + "Manual password") addPass=$(dmenu -i -P -p "Enter a password") ;; + * ) exit + esac + + [ -z "$addPass" ] && exit + + echo "$addPass" | pass insert "$name" -e + notify-send "🔒 Password for $name added!" } removePassword() { \