From d1277326dff7dff3326e29dcfb7bbe8ded2de0c1 Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Fri, 2 Jul 2021 16:26:53 +0200 Subject: [PATCH] preserve environment variables when calling `pass show` --- bwpass.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/bwpass.py b/bwpass.py index d88a7d0..9f04150 100644 --- a/bwpass.py +++ b/bwpass.py @@ -4,14 +4,19 @@ from subprocess import check_output, CalledProcessError from bundlewrap.exceptions import FaultUnavailable from bundlewrap.utils import Fault +from bundlewrap.utils.dict import merge_dict from bundlewrap.utils.text import bold, yellow from bundlewrap.utils.ui import io -PASSWORD_STORE_DIR = expanduser(environ.get('BW_PASS_DIR', '~/.password-store')) +ENVIRONMENT = merge_dict(environ, { + 'PASSWORD_STORE_DIR': expanduser(environ.get('BW_PASS_DIR', '~/.password-store')). +}) + DUMMY_MODE = environ.get('BW_PASS_DUMMY_MODE', '0') == '1' cache = {} + def _get_contents_from_pass(identifier: str): try: return cache[identifier] @@ -26,9 +31,7 @@ def _get_contents_from_pass(identifier: str): try: pass_output = check_output( ['pass', 'show', identifier], - env={ - 'PASSWORD_STORE_DIR': PASSWORD_STORE_DIR, - } + env=ENVIRONMENT, ).decode('UTF-8').splitlines() except FileNotFoundError: raise FaultUnavailable('pass not found')