errorhandling #2

Closed
ac124969 wants to merge 3 commits from errorhandling into main
Showing only changes of commit fa128a9cea - Show all commits

View File

@ -5,6 +5,7 @@ import dataclasses
import getpass import getpass
import os import os
import os.path import os.path
import sys
import shlex import shlex
import subprocess import subprocess
import typing import typing
@ -145,8 +146,14 @@ class Keepass(PasswordManager):
def get_password(self, password_name: str) -> str: def get_password(self, password_name: str) -> str:
import pykeepass # already made sure it is avaiable above import pykeepass # already made sure it is avaiable above
password = getpass.getpass(f"KeePass password for database {self.database}: ") while True:
kp = pykeepass.PyKeePass(self.database, password=password) try:
password = getpass.getpass(f"KeePass password for database {self.database}: ")
kp = pykeepass.PyKeePass(self.database, password=password)
break
except pykeepass.exceptions.CredentialsError:
print("Invalid password", file=sys.stderr)
entry = kp.find_entries(username=password_name, first=True) entry = kp.find_entries(username=password_name, first=True)
if entry: if entry:
return entry.password # type: ignore return entry.password # type: ignore