Add coffin automation to pass-pick
This commit is contained in:
parent
bd37843102
commit
8b3b49275c
1 changed files with 27 additions and 6 deletions
|
@ -109,6 +109,9 @@ set_defaults() {
|
||||||
AUTOFILL_CHAIN="${PP_AUTOENTRY_CHAIN:-$(get_config AUTOFILL_CHAIN 'username :tab password')}"
|
AUTOFILL_CHAIN="${PP_AUTOENTRY_CHAIN:-$(get_config AUTOFILL_CHAIN 'username :tab password')}"
|
||||||
AUTOFILL_DELAY="${PP_AUTOENTRY_DELAY:-$(get_config AUTOFILL_DELAY 30)}"
|
AUTOFILL_DELAY="${PP_AUTOENTRY_DELAY:-$(get_config AUTOFILL_DELAY 30)}"
|
||||||
PASS_USERNAME_FIELD="${PP_PASS_USERNAME_FIELD:-$(get_config PASS_USERNAME_FIELD 'username user login')}"
|
PASS_USERNAME_FIELD="${PP_PASS_USERNAME_FIELD:-$(get_config PASS_USERNAME_FIELD 'username user login')}"
|
||||||
|
|
||||||
|
PASS_COFFIN_OPEN_TIME="${PP_PASS_COFFIN_OPEN_TIME:-$(get_config PASS_COFFIN_OPEN_TIME 0)}"
|
||||||
|
PASS_COFFIN_LOCATION="${PP_PASS_COFFIN_LOCATION:-$(get_config PASS_COFFIN_LOCATION)}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# exit on escape pressed
|
# exit on escape pressed
|
||||||
|
@ -311,6 +314,26 @@ entrymenu() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open_coffin() {
|
||||||
|
## there's a closed coffin in our directory
|
||||||
|
if [ -f "${PASS_COFFIN_LOCATION:-${PASSWORD_STORE_DIR:-~/.password-store}/.coffin/coffin.tar.gpg}" ]; then
|
||||||
|
if [ "$PASS_COFFIN_OPEN_TIME" -eq 0 ]; then
|
||||||
|
coffin_should_close_instantly=true
|
||||||
|
pass open -t 1h # we still set a maximum time limit just to hedge against failures
|
||||||
|
else
|
||||||
|
pass open -t "${PASS_COFFIN_OPEN_TIME:-3h}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# make sure we remember to close the coffin if the program terminates
|
||||||
|
close_coffin() {
|
||||||
|
if [ "$coffin_should_close_instantly" = true ]; then
|
||||||
|
pass close
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
trap close_coffin SIGINT SIGTERM ERR EXIT
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
local autoentry_chain="${AUTOFILL_CHAIN}"
|
local autoentry_chain="${AUTOFILL_CHAIN}"
|
||||||
local k_autofill="${KEY_AUTOFILL}"
|
local k_autofill="${KEY_AUTOFILL}"
|
||||||
|
@ -320,6 +343,8 @@ main() {
|
||||||
local k_clip_pass="${KEY_CLIP_PASS}"
|
local k_clip_pass="${KEY_CLIP_PASS}"
|
||||||
local k_submenu="${KEY_ENTRY_OPEN}"
|
local k_submenu="${KEY_ENTRY_OPEN}"
|
||||||
|
|
||||||
|
open_coffin
|
||||||
|
|
||||||
entry="$(
|
entry="$(
|
||||||
list_passwords |
|
list_passwords |
|
||||||
_picker -kb-accept-entry "" \
|
_picker -kb-accept-entry "" \
|
||||||
|
@ -338,29 +363,25 @@ main() {
|
||||||
case "$exit_value" in
|
case "$exit_value" in
|
||||||
"0" | "10")
|
"0" | "10")
|
||||||
autofill "$entry" "$autoentry_chain"
|
autofill "$entry" "$autoentry_chain"
|
||||||
exit 0
|
|
||||||
;;
|
;;
|
||||||
"11")
|
"11")
|
||||||
clip_username "$entry"
|
clip_username "$entry"
|
||||||
exit 0
|
|
||||||
;;
|
;;
|
||||||
"12")
|
"12")
|
||||||
clip_password "$entry"
|
clip_password "$entry"
|
||||||
exit
|
|
||||||
;;
|
;;
|
||||||
"13")
|
"13")
|
||||||
autofill "$entry" "username"
|
autofill "$entry" "username"
|
||||||
exit
|
|
||||||
;;
|
;;
|
||||||
"14")
|
"14")
|
||||||
autofill "$entry" "password"
|
autofill "$entry" "password"
|
||||||
exit
|
|
||||||
;;
|
;;
|
||||||
"15")
|
"15")
|
||||||
entrymenu "$entry"
|
entrymenu "$entry"
|
||||||
exit
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
set_defaults
|
set_defaults
|
||||||
|
|
Loading…
Reference in a new issue