···44# configuration file for tessen
55# place this file in $XDG_CONFIG_HOME/tessen/config
6677-# the default pass program to use - pass or gopass
77+# the default pass program to use - pass, gopass or prs
88# pass_backend="pass"
991010# the default dmenu backend program to use - rofi, fuzzel, bemenu, rofi, or dmenu
+16-7
tessen
···66# ------------------------------------------------------------------------------
7788# don't leak password data if debug mode is enabled
99-#set +x
99+set -x
10101111# GLOBAL VARIABLES
1212declare _PASS_BACKEND _DMENU_BACKEND _TSN_ACTION _TSN_CONFIG
···97979898 if [[ $_PASS_BACKEND == "pass" ]]; then
9999 mapfile -t passdata < <(pass show "$_TSN_PASSFILE" 2> /dev/null)
100100+ if [[ ${#passdata[@]} -eq 0 ]]; then
101101+ _die "the selected file is empty"
102102+ fi
103103+ elif [[ $_PASS_BACKEND == "prs" ]]; then
104104+ mapfile -t passdata < <(prs show "$_TSN_PASSFILE" 2> /dev/null)
100105 if [[ ${#passdata[@]} -eq 0 ]]; then
101106 _die "the selected file is empty"
102107 fi
···314319315320 if [[ $_PASS_BACKEND == "pass" ]]; then
316321 tmp_otp="$(pass otp "$_TSN_PASSFILE")"
322322+ elif [[ $_PASS_BACKEND == "prs" ]]; then
323323+ tmp_otp="$(prs otp show --quiet "$_TSN_PASSFILE")"
317324 elif [[ $_PASS_BACKEND == "gopass" ]]; then
318325 tmp_otp="$(gopass otp -o "$_TSN_PASSFILE")"
319326 fi
···394401 printf "%s\n" "invalid clipboard timeout value in PASSWORD_STORE_CLIP_TIME" >&2
395402 return 1
396403 fi
404404+ elif [[ $_PASS_BACKEND == "prs" ]]; then
405405+ tsn_cliptime="20"
397406 elif [[ $_PASS_BACKEND == "gopass" ]]; then
398407 tsn_cliptime="$(gopass config core.cliptimeout)"
399408 tsn_cliptime="${tsn_cliptime##*: }"
···430439431440validate_pass_backend() {
432441 if ! is_installed "$1"; then
433433- _die "please install a valid password store backend: pass | gopass"
442442+ _die "please install a valid password store backend: pass | gopass | prs"
434443 fi
435435- if [[ $1 == "pass" ]] || [[ $1 == "gopass" ]]; then
444444+ if [[ $1 == "pass" ]] || [[ $1 == "gopass" ]] || [[ $1 == "prs" ]]; then
436445 _PASS_BACKEND="$1"
437446 else
438438- _die "please specify a valid password store backend: pass | gopass"
447447+ _die "please specify a valid password store backend: pass | gopass | prs"
439448 fi
440449}
441450···526535}
527536528537find_pass_backend() {
529529- local -a tmp_pass_arr=('pass' 'gopass')
538538+ local -a tmp_pass_arr=('pass' 'gopass' 'prs')
530539 local idx
531540532541 for idx in "${tmp_pass_arr[@]}"; do
···536545 fi
537546 done
538547 if [[ -z $_PASS_BACKEND ]]; then
539539- _die "please install a valid password store backend: pass | gopass"
548548+ _die "please install a valid password store backend: pass | gopass | prs"
540549 fi
541550542551 unset -v idx tmp_pass_arr
···811820 fi
812821813822 trap '_clear' EXIT TERM INT
814814- if [[ $_PASS_BACKEND == "pass" ]]; then
823823+ if [[ $_PASS_BACKEND == "pass" ]] || [[ $_PASS_BACKEND == "prs" ]]; then
815824 get_pass_files
816825 elif [[ $_PASS_BACKEND == "gopass" ]]; then
817826 get_gopass_files