From c5262d075b179d8579f0c87b45fe096951e35c27 Mon Sep 17 00:00:00 2001 From: Roman Zeyde Date: Mon, 24 Oct 2016 17:55:35 +0300 Subject: [PATCH] gpg: use 'gpg-agent.conf' to configure trezor-gpg-agent currently support logfile and logging verbosity --- scripts/gpg-init | 5 +++++ trezor_agent/gpg/__main__.py | 9 +++++++++ trezor_agent/util.py | 4 ++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/scripts/gpg-init b/scripts/gpg-init index 0fc5068..d5d44b4 100755 --- a/scripts/gpg-init +++ b/scripts/gpg-init @@ -23,3 +23,8 @@ echo "${FINGERPRINT}:6" | gpg2 --homedir "${HOMEDIR}" --import-ownertrust echo "# TREZOR-based GPG configuration agent-program $(which trezor-gpg-agent) " | tee "${HOMEDIR}/gpg.conf" + +echo "# TREZOR-based GPG agent emulator +log-file ${HOMEDIR}/gpg-agent.log +verbosity 2 +" | tee "${HOMEDIR}/gpg-agent.conf" diff --git a/trezor_agent/gpg/__main__.py b/trezor_agent/gpg/__main__.py index dfd2ecd..d069eb5 100755 --- a/trezor_agent/gpg/__main__.py +++ b/trezor_agent/gpg/__main__.py @@ -4,6 +4,7 @@ import argparse import contextlib import io import logging +import os import sys import time @@ -98,6 +99,14 @@ def main_create(): def main_agent(): """Run a simple GPG-agent server.""" + home_dir = os.environ.get('GNUPGHOME', os.path.expanduser('~/.gnupg/trezor')) + config_file = os.path.join(home_dir, 'gpg-agent.conf') + lines = (line.strip() for line in open(config_file)) + lines = (line for line in lines if line and not line.startswith('#')) + config = dict(line.split(' ', 1) for line in lines) + + util.setup_logging(verbosity=int(config['verbosity']), + filename=config['log-file']) sock_path = keyring.get_agent_sock_path() with server.unix_domain_socket_server(sock_path) as sock: for conn in agent.yield_connections(sock): diff --git a/trezor_agent/util.py b/trezor_agent/util.py index 24ca636..e9b7409 100644 --- a/trezor_agent/util.py +++ b/trezor_agent/util.py @@ -229,10 +229,10 @@ def get_bip32_address(identity, ecdh=False): return [(hardened | value) for value in address_n] -def setup_logging(verbosity): +def setup_logging(verbosity, **kwargs): """Configure logging for this tool.""" fmt = ('%(asctime)s %(levelname)-12s %(message)-100s ' '[%(filename)s:%(lineno)d]') levels = [logging.WARNING, logging.INFO, logging.DEBUG] level = levels[min(verbosity, len(levels) - 1)] - logging.basicConfig(format=fmt, level=level) + logging.basicConfig(format=fmt, level=level, **kwargs)