/usr/share/pass/kedpm2pass.py is in pass 1.7.1-3.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (C) 2012 Antoine Beaupré <anarcat@orangeseeds.org>. All Rights Reserved.
# This file is licensed under the GPLv2+. Please see COPYING for more information.
#
# To double-check your import worked:
# grep Path passwords | sed 's#^Path: ##;s/$/.gpg/' | sort > listpaths
# (cd ~/.password-store/ ; find -type f ) | sort | diff -u - listpaths
import re
import fileinput
import sys # for exit
import subprocess
def insert(d):
path = d['Path']
del d['Path']
print "inserting " + path
content = d['Password'] + "\n"
del d['Password']
for k, v in d.iteritems():
content += "%s: %s\n" % (k, v)
del d
cmd = ["pass", "insert", "--force", "--multiline", path]
process = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = process.communicate(content)
retcode = process.wait()
if retcode:
print 'command "%s" failed with exit code %d: %s' % (" ".join(cmd), retcode, stdout + stderr)
sys.exit(1);
d = None
for line in fileinput.input():
if line == "\n":
continue
match = re.match("(\w+): (.*)$", line)
if match:
if match.group(1) == 'Path':
if d is not None:
insert(d)
else:
d = {}
d[match.group(1)] = match.group(2)
#print "found field: %s => %s" % (match.group(1), match.group(2))
else:
print "warning: no match found on line: *%s*" % line
if d is not None:
insert(d)
|