password-store

Simple password manager using gpg and ordinary unix directories
git clone https://git.zx2c4.com/password-store
Log | Files | Refs | README | LICENSE

commit 98ae33e0377522cb093508a8c1be861848bd9164
parent 88a50af793b6d8386750459f4cf88c350778484e
Author: Juhamatti Niemelä <iiska@iki.fi>
Date:   Tue, 18 Sep 2012 19:50:10 +0300

Add additional information from KeepassX xml

Import passwords as multiline entries with password in the first
line. Rest contains following data if they exist in the entry element
of the xml file:

- username
- url
- comment

Diffstat:
Mcontrib/keepassx2pass.py | 18+++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/contrib/keepassx2pass.py b/contrib/keepassx2pass.py @@ -1,5 +1,6 @@ #! /usr/bin/env python - +# -*- coding: utf-8 -*- +# # (C) Copyright 2012 Juhamatti Niemelä <iiska@iki.fi>. All Rights # Reserved. This file is licensed under the GPLv2+. Please see COPYING # for more information. @@ -14,12 +15,23 @@ def path_for(element, path=''): title = element.find('title').text return '/'.join([path, title]) +def password_data(element): + """ Return password data and additional info if available from + password entry element. """ + ret = element.find('password').text + "\n" + for field in ['username', 'url', 'comment']: + fel = element.find(field) + if fel.text is not None: + ret = "%s%s: %s\n" % (ret, fel.tag, fel.text) + return ret + def import_entry(element, path=''): """ Import new password entry to password-store using pass insert command """ - proc = Popen(['pass', 'insert', '--force', path_for(element, path)], + proc = Popen(['pass', 'insert', '--multiline', '--force', + path_for(element, path)], stdin=PIPE, stdout=PIPE) - proc.communicate(element.find('password').text + "\n") + proc.communicate(password_data(element).encode('utf8')) proc.wait() def import_group(element, path=''):