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 e242e97e8162f5539fcd3175f496e27c6efd7460
parent 7ed0a70aa6d1fd502ff5443bced462d6dedd8511
Author: Lukas Zapletal <lzap+git@redhat.com>
Date:   Tue, 15 Apr 2014 13:29:45 +0200

Multiline comment support for keepassx importer

Diffstat:
Mcontrib/importers/keepassx2pass.py | 14+++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/contrib/importers/keepassx2pass.py b/contrib/importers/keepassx2pass.py @@ -44,13 +44,18 @@ def password_data(element): ret = passwd + "\n" if passwd else "\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) + children = [str(e.text or '') + str(e.tail or '') for e in list(fel)] + if len(children) > 0: + children.insert(0, '') + text = (fel.text or '') + "\n".join(children) + if len(text) > 0: + ret = "%s%s: %s\n" % (ret, fel.tag, text) return ret def import_entry(element, path=''): """ Import new password entry to password-store using pass insert command """ + print "Importing " + path_for(element, path) proc = Popen(['pass', 'insert', '--multiline', '--force', path_for(element, path)], stdin=PIPE, stdout=PIPE) @@ -68,9 +73,8 @@ def import_group(element, path=''): def main(xml_file): """ Parse given KeepassX XML file and import password groups from it """ - with open(xml_file) as xml: - for group in ElementTree.XML(xml.read()).findall('group'): - import_group(group) + for group in ElementTree.parse(xml_file).findall('group'): + import_group(group) if __name__ == '__main__': main(sys.argv[1])