mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-10-01 01:26:01 -04:00
30 lines
770 B
Plaintext
30 lines
770 B
Plaintext
|
#!/usr/bin/env bash
|
||
|
# fetch KeePass database passwords from keychain
|
||
|
|
||
|
### change the path to suit your installation or set KDBX_SEARCH before calling ###
|
||
|
: ${KDBX_SEARCH:=~/.KeePass/*.kdbx}
|
||
|
|
||
|
PROG="$(basename $0)"
|
||
|
KeePassXC=$(ls -f {/usr/local,/Applications}/KeePassXC.app/Contents/MacOS/KeePassXC 2>/dev/null | head -1)
|
||
|
|
||
|
function daemon_main {
|
||
|
declare -A DBs
|
||
|
for DBPATH in $KDBX_SEARCH; do
|
||
|
DBs[$(python -c "import os; print os.path.realpath('$DBPATH')")]=$(security find-generic-password -a $USER -s "${DBPATH##*/}" -w)
|
||
|
done
|
||
|
|
||
|
# launch keepassxc
|
||
|
IFS=$'\n\n\n'
|
||
|
$KeePassXC --pw-stdin "${!DBs[@]}" <<<"${DBs[*]}" &
|
||
|
}
|
||
|
|
||
|
if [[ '-d' = "$1" ]]; then
|
||
|
exec >&~/tmp/$PROG.log
|
||
|
set -vx
|
||
|
daemon_main
|
||
|
else
|
||
|
cd /
|
||
|
daemon_main </dev/null >&/dev/null &
|
||
|
disown
|
||
|
fi
|