#!/usr/bin/env bash function log { if [ -t 1 ]; then echo "$@" >&2 fi } function prompt_password { if command -v kdialog >/dev/null; then kdialog --password Password else zenity --password --timeout=60 fi } function get_from_keepassxc { keepassxc-cli show -q "$KEEPASS_FILE" "$1" -a "$2" <<< "$3" } function get_credentials { local opPassword local password if ! password=$(prompt_password 2> /dev/null); then log "Failed to get password" return 1 fi if ! opPassword=$(get_from_keepassxc "$KEEPASS_OP_ENTRY" Password "$password"); then log "Failed to open vault" exit 1 fi op signin -f <<<"$opPassword" } get_credentials