keepassxc
1#!/usr/bin/env bash
2# fetch KeePass database passwords from keychain
3
4### change the path to suit your installation or set KDBX_SEARCH before calling ###
5: ${KDBX_SEARCH:=~/.KeePass/*.kdbx}6
7PROG=$(basename "$0")8KeePassXC=$(ls -f {/usr/local,/opt/homebrew,/Applications}/KeePassXC.app/Contents/MacOS/KeePassXC 2>/dev/null | head -1)9
10daemon_main() {11declare -A DBs12for DBPATH in $KDBX_SEARCH; do13DBs[$(python -c "import os; print os.path.realpath('$DBPATH')")]=$(security find-generic-password -a $USER -s "${DBPATH##*/}" -w)14done15
16# launch keepassxc17IFS=$'\n\n\n'18$KeePassXC --pw-stdin "${!DBs[@]}" <<<"${DBs[*]}" &19}
20
21if [[ $1 == '-d' ]]; then22exec >&~/tmp/$PROG.log23set -vx24daemon_main
25else
26cd /27daemon_main </dev/null >&/dev/null &28disown
29fi
30