cic-cli/cic/keystore.py

32 lines
911 B
Python

# standard imports
import os
import json
import logging
# external imports
from funga.error import (
DecryptError,
KeyfileError,
)
from funga.keystore import Keystore
logg = logging.getLogger(__name__)
class KeystoreDirectory(Keystore):
def process_dir(self, path, password_retriever=None, default_password=''):
for v in os.listdir(path):
fp = os.path.join(path, v)
try:
self.import_keystore_file(fp, password=default_password)
except IsADirectoryError:
pass
except KeyfileError as e:
logg.warning(f'file {fp} could not be parsed as keyfile: {e}')
except DecryptError as e:
if password_retriever is None:
raise e
password = password_retriever()
self.import_keystore_file(fp, password=password)