keepassxc

Форк
0
/
keepassxc-kdewallet 
38 строк · 1.1 Кб
1
#!/usr/bin/env bash
2
# fetch KeePass database passwords from kdewallet
3

4
### change the path to suit your installation or set KDBX_SEARCH before calling ###
5
: ${KDBX_SEARCH:=~/.KeePass/*.kdbx}
6

7
PROG=${0##*/}
8
KEEPASSXC=$(which -a keepassxc | sed -e "\\,$0,d" -e 'q')
9

10
daemon_main() {
11
  # open kdewallet
12
  handle=$(qdbus org.kde.kwalletd5 /modules/kwalletd5 org.kde.KWallet.open kdewallet 0 "$PROG")
13
  while [[ true != $(qdbus org.kde.kwalletd5 /modules/kwalletd5 org.kde.KWallet.isOpen kdewallet) ]]; do
14
    sleep 1
15
  done
16

17
  declare -A DBs
18
  for DBPATH in $(ls -r $KDBX_SEARCH); do
19
    DBs[$(realpath $DBPATH)]=$(qdbus org.kde.kwalletd5 /modules/kwalletd5 org.kde.KWallet.readPassword "$handle" "Passwords" "${DBPATH##*/}" "$PROG")
20
  done
21

22
  # launch real keepassxc
23
  IFS=$'\n\n\n'
24
  "$KEEPASSXC" --pw-stdin "${!DBs[@]}" <<<"${DBs[*]}" &
25

26
  # done with kdewallet
27
  qdbus org.kde.kwalletd5 /modules/kwalletd5 org.kde.KWallet.close "$handle" "false" "$PROG"
28
}
29

30
if [[ $1 == '-d' ]]; then
31
  exec >&~/tmp/$PROG.log
32
  set -vx
33
  daemon_main
34
else
35
  cd /
36
  daemon_main </dev/null >&/dev/null &
37
  disown
38
fi
39

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.