mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-02-04 08:55:31 -05:00
36 lines
947 B
Plaintext
36 lines
947 B
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
PROG="$(basename $0)"
|
||
|
|
||
|
function daemon_main {
|
||
|
# open kdewallet
|
||
|
handle=$(qdbus org.kde.kwalletd5 /modules/kwalletd5 org.kde.KWallet.open kdewallet 0 "$PROG")
|
||
|
while [[ true != $(qdbus org.kde.kwalletd5 /modules/kwalletd5 org.kde.KWallet.isOpen kdewallet) ]]; do
|
||
|
sleep 1
|
||
|
done
|
||
|
|
||
|
# fetch KeePass database passwords from kdewallet
|
||
|
declare -A DBs
|
||
|
### change the path to suit your installation ###
|
||
|
for DBPATH in ~/.keepassx/*.kdbx; do
|
||
|
DBs[$DBPATH]=$(qdbus org.kde.kwalletd5 /modules/kwalletd5 org.kde.KWallet.readPassword "$handle" "Passwords" "$DBPATH" "$PROG")
|
||
|
done
|
||
|
|
||
|
# launch keepassx
|
||
|
IFS=$'\n\n\n'
|
||
|
keepassx --pw-stdin "${!DBs[@]}" <<<"${DBs[*]}" &
|
||
|
|
||
|
# done with kdewallet
|
||
|
qdbus org.kde.kwalletd5 /modules/kwalletd5 org.kde.KWallet.close "$handle" "false" "$PROG"
|
||
|
}
|
||
|
|
||
|
if [[ '-d' = "$1" ]]; then
|
||
|
exec >&~/tmp/$PROG.log
|
||
|
set -vx
|
||
|
daemon_main
|
||
|
else
|
||
|
cd /
|
||
|
daemon_main </dev/null >&/dev/null &
|
||
|
disown
|
||
|
fi
|