summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorJuhamatti Niemelä <iiska@iki.fi>2012-09-18 19:50:10 +0300
committerJuhamatti Niemelä <iiska@iki.fi>2012-09-18 19:50:10 +0300
commit98ae33e0377522cb093508a8c1be861848bd9164 (patch)
treedd19fd9fb63733d950966e5a7883adb469b11b0f /contrib
parent88a50af793b6d8386750459f4cf88c350778484e (diff)
downloadpass-98ae33e0377522cb093508a8c1be861848bd9164.tar.gz
pass-98ae33e0377522cb093508a8c1be861848bd9164.tar.bz2
pass-98ae33e0377522cb093508a8c1be861848bd9164.zip
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 (limited to '')
-rwxr-xr-xcontrib/keepassx2pass.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/contrib/keepassx2pass.py b/contrib/keepassx2pass.py
index d8357be..cc75938 100755
--- 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=''):
tr class='nohover-highlight'> 2008-07-03Ported gpytage pluginRené 'Necoro' Neumann2-16/+14 2008-07-03Ported Notify pluginRené 'Necoro' Neumann4-37/+51 2008-07-03Remove xsd and -x cmdline optionRené 'Necoro' Neumann2-107/+1 2008-07-03Ported completelyRené 'Necoro' Neumann3-548/+54 2008-07-03Should show dependencies nowRené 'Necoro' Neumann2-82/+128 2008-07-03New plugin system - first hackRené 'Necoro' Neumann2-420/+683 2008-06-30Now the new design is able to do the same as the old oneRené 'Necoro' Neumann3-168/+182 2008-06-30First draft of the new plugin windowRené 'Necoro' Neumann1-8/+172 2008-06-30Added stuff to plugin.pyRené 'Necoro' Neumann1-2/+24 2008-06-25Now load 22 versions when running the correct portageRené 'Necoro' Neumann4-8/+18 2008-06-25Added Package_22 and System_22René 'Necoro' Neumann4-5/+63