Merge pull request #29 from Weidows/master

fix encoding and add session param
This commit is contained in:
Joao Jacome 2023-01-14 11:18:23 +00:00 committed by GitHub
commit 00860658a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 4 deletions

View file

@ -28,3 +28,4 @@ Fetches SSH keys stored in Bitwarden vault and adds them to `ssh-agent`.
* `--foldername`/`-f` - Folder name to use to search for SSH keys _(default: ssh-agent)_
* `--customfield`/`-c` - Custom field name where private key filename is stored _(default: private)_
* `--passphrasefield`/`-p` - Custom field name where passphrase for the key is stored _(default: passphrase)_
* `--session`/`-s` - session key of bitwarden

View file

@ -56,11 +56,12 @@ def cli_supports(feature: str) -> bool:
return False
def get_session() -> str:
def get_session(session: str) -> str:
"""
Function to return a valid Bitwarden session
"""
# Check for an existing, user-supplied Bitwarden session
if not session:
session = os.environ.get('BW_SESSION', '')
if session:
logging.debug('Existing Bitwarden session found')
@ -101,6 +102,7 @@ def get_folders(session: str, foldername: str) -> str:
stdout=subprocess.PIPE,
universal_newlines=True,
check=True,
encoding = "utf-8",
)
folders = json.loads(proc_folders.stdout)
@ -128,6 +130,7 @@ def folder_items(session: str, folder_id: str) -> List[Dict[str, Any]]:
stdout=subprocess.PIPE,
universal_newlines=True,
check=True,
encoding = "utf-8",
)
data: List[Dict[str, Any]] = json.loads(proc_items.stdout)
@ -270,6 +273,12 @@ if __name__ == '__main__':
default='passphrase',
help='custom field name where key passphrase is stored',
)
parser.add_argument(
'-s',
'--session',
default='',
help='session key of bitwarden',
)
return parser.parse_args()
@ -289,7 +298,7 @@ if __name__ == '__main__':
try:
logging.info('Getting Bitwarden session')
session = get_session()
session = get_session(args.session)
logging.debug('Session = %s', session)
logging.info('Getting folder list')